精华内容
下载资源
问答
  • 使用Python向已有Excel工作表sheet写入数据框dataframe数据 项目场景: 通常使用SQL、Python处理完数据后会将需要导出的数据输出成CSV格式,然后必要使用Excel模板进行格式上的调整(供业务人员查看),或者输入到...

    使用Python向已有Excel工作表sheet写入数据框dataframe数据

    项目场景:

    通常使用SQL、Python处理完数据后会将需要导出的数据输出成CSV格式,然后必要时使用Excel模板进行格式上的调整(供业务人员查看),或者输入到Excel模板进一步计算,该步骤一般都是人工操作,对Python最后的输出操作优化可以提高一点工作效率。

    具体示例

    原有工作簿有两个工作表sheet1,sheet2,sheet1带有格式,需要从Python导出数据往里面写入,sheet2是对sheet1其中两列进行计算的工作表,已写入公式
    原有工作簿workbook有两个工作表sheet1、sheet2
    sheet2设定带有公式计算
    在这里插入图片描述
    Python中有该数据框数据需要输出至sheet1

    data=pd.DataFrame({'年份':[1995,1996,1997,1998,1999],'地区':['广州市','广州市','广州市','广州市','广州市'],
                       '性别':['男','男','男','男','男'],'婚姻':['未婚','未婚','未婚','未婚','未婚'],'AUM':[200000,200001,200002,200003,200004],
                      '人数':[40,41,42,43,44]})
    

    工具

    openpyxl模块:可以使往Excel文件追加数据时而不覆盖文件写入的模块;
    pandas模块:to_excel()将dataframe直接整个输出到Excel的函数

    import pandas as pd
    from openpyxl import load_workbook,Workbook 
    

    测试时注意每一次都需要完整读入与关闭(load与save,close),否则改动后会发现结果无变化,原因是读入的是前一次测试的结果.

    解决方法

    • 方法1
      由于某些业务场景可能需要逐个单元格读入到已有表格中的某些位置,使用两层循环的方式逐格读入数据框的值
      需要注意的是表格位置与Python中数据框行列的起始位置的差异、range(m,n)实际输出的是从m至n-1的值。
    ##先读入文件路径
    filepath=r'table.xlsx'
    writer = pd.ExcelWriter(filepath, engine='openpyxl')
    writer.book=load_workbook(filepath)
    
    ws=writer.book["Sheet1"]#指定工作表
    #原表格sheet1表头保留,因此读入表格从第2行开始,列起始列依然为1
    #dataframe对象行列从0开始,因此需要对行列标做减法对应上
    for i in range(2,7):
        for j in range(1,7):
            ws.cell(row=i,column=j).value=data.iloc[i-2,j-1]
    writer.save()#保存后才能成功改动
    writer.close()
    

    结果:
    sheet1成功追加更新,表头未有变化
    在这里插入图片描述
    sheet2计算得出结果
    在这里插入图片描述

    • 方法2:
      整个dataframe写入到sheet1中,覆盖sheet1中的数据。
      但原有表格格式样式发生部分变化(行标题字体从微软雅黑变成了宋体,但单元格颜色和加粗无变化)
    ##先读入文件路径
    filepath=r'table.xlsx'
    writer = pd.ExcelWriter(filepath, engine='openpyxl')
    writer.book=load_workbook(filepath)
    
    writer.sheets={ws.title:ws for ws in writer.book.worksheets}
    data.to_excel(writer,"Sheet1",index=False)#行序号不需要,设定为index=False
    writer.save()
    writer.close()
    

    sheet1覆盖数据,更新成功,首行单元格格式无大变化,因此该操作不是重新另建一个sheet的结果
    在这里插入图片描述
    sheet2计算得出结果
    在这里插入图片描述

    writer.sheets={ws.title:ws for ws in writer.book.worksheets}
    

    这句话是从别的博主中抄的,见下面参考链接,具体含义不明,如果删除掉这句话,继续执行后面的语句,原有的工作簿会多出一个sheet11,而不是在原有的sheet1中写入数据

    见下面的参考链接

    https://www.cnblogs.com/eternalpal/p/12920678.html
    http://www.360doc.com/content/19/1228/21/644962_882790477.shtml
    http://www.cocoachina.com/articles/93352
    https://blog.csdn.net/miss_audrey/article/details/102741103

    展开全文
  • 有时我们可能会两种工作表中查找重复记录,当数据记录很多,就必须通过简单的方法来实现。下面小编就与大家一起分享一下查看重复记录数据的方法,希望对大家有所帮助。 方法/步骤   为了...

    有时我们可能会在两种工作表中查找重复记录,当数据记录很多时,就必须通过简单的方法来实现。下面小编就与大家一起分享一下查看重复记录数据的方法,希望对大家有所帮助。

    方法/步骤

    1.  

      为了讲解的需要,小编特别制作了如图所示的两个表格,在此小编特意将其中的一个表中的姓名做了部分修改。

    2.  

      在此我们需要从Sheet3工作表中查找出已存在于Sheet4工作表中姓名相同的记录。对此在Sheet3工作表对应列中输入以下“=if(B2=”。

    3.  

      然后切换至Sheet4工作表中,选择姓名区域,并按回车键。

    4.  

      在返回sheet3工作表后,补全公式“=if(B2=Sheet4!B2:B24,"是","否")”并按回车。

    5.  

      然后将光标移动到单元格右下角,当鼠标变成黑色十字时,拖动完成公式的复制。然后就实现了数据的对比操作,同时也找出了重复的数据。

       

    6.  

    展开全文
  • Excel如何实现两个工作表数据的对比

    万次阅读 2018-05-23 09:33:23
    Excel如何实现数据的对比呢?...方法/步骤1通过要进行对比的两个工作表或多个工作表位于不同的文件,我们首先要做的就是当多个要进行对比的Excel工作表数据复制粘贴到同一个工作表,同时做好各个工...

    Excel如何实现数据的对比呢?在利用Excel处理记录时,我们通过会面对一种情况,就是将两张工作表进行对比,以便从中找出不同记录或数据。此时情况特别适合验证信息的完整性以及检验数据的差异性方法。下面小编就为大家讲解一下具体的实现方法。

    方法/步骤

    1. 1

      通过要进行对比的两个工作表或多个工作表位于不同的文件中,我们首先要做的就是当多个要进行对比的Excel工作表数据复制粘贴到同一个工作表中,同时做好各个工作表的命名准备,以便能正确的区分数据的来源。

    2. 2

      接下来确定数据“关键字”部分,即能够唯一标识记录的关键字组合,这样就可以在进行数据对比时,能够唯一的标记一条记录。比如,如图所示的“ID”和“姓名”就可以唯一标识一条记录。

    3. 3

      接下来,我们还要确定一下,各个工作表数据行的范围以及要进行对比的关键字所在的位置信息。如图可知,

      员工基础报表中数据范围为“3至12行”,关键字所在的位置为(i行1列)和(i行2列)。

      员工待遇统计表中数据范围为“3至11行”,关键字所在的位置为(i行1列)和(i行2列)。

    4. 4

      在本经验中,我们所要做的就是从表1中找出表2中已经存在的记录,并且做好相应的标记,以便供查看。为此,按键盘上的快捷组合键“Alt+F11”进入VBA编辑模式。或者切换至“开发工具”选项卡,点击“Visual Basic”按钮进入VBA环境。

      有关“开发工具”选项卡的打开方法请参考栏目二部分。

    5. 5

      右击“Microsoft Excel对象”,从弹出的右键菜单中选择“插入”->“模块”项。

    6. 6

      接着输入如图所示的代码:

      Sub 数据对比()

          Dim i As Integer

          Dim j As Integer    

          For i = 3 To 12        '员工基础报表数据范围

              For j = 3 To 11    '员工待遇统计表数据范围

               If Sheets("员工基础报表").Cells(i, 1) = Sheets("员工待遇统计表").Cells(j, 1) Then

                  If Sheets("员工基础报表").Cells(i, 2) = Sheets("员工待遇统计表").Cells(j, 2) Then

                     Sheets("员工基础报表").Cells(i, 8) = "已存在"   '存在时进行标记

                  End If

               End If

              Next j

          Next i

      End Sub



    7. 7

      然后点击工具栏上的“调试运行”按钮。

    8. 8

      待子过程运行结束后,返回Excel工作表进行查看,就会发现对比结果已经出来啦。基于此,我们可以进行更近一步的数据处理操作。顺便也将另一张工作表中的记录一同展示出来,以供参考。

      END

    打开“开发工具”选项卡的方法

    1. 点击“Office”按钮,从弹出的菜单中选择“Excel选项”按钮。

    2. 接着在打开的窗口中勾选“在功能区显示‘开发工具’选择卡”项即可。

    Cells(1, 1).Font.ColorIndex = 3 '字的颜色号为3 红色
    Cells(1, 1).Interior.ColorIndex = 3 ' 背景的颜色为3 红色
    Cells(2, 1).Font.Color = RGB(0, 255, 0) '字的颜色绿色
    Cells(2, 1).Interior.Color = RGB(0, 0, 255) '背景的颜色蓝色



    Sub compare()

    Dim i As Integer

    Dim j As Integer

    For i = 3 To 114 'Sheet1

    For j = 1 To 74 'Sheet2

    If Sheets("Sheet1").Cells(i, 2) = Sheets("线上数据").Cells(j, 3) Then

    If Sheets("Sheet1").Cells(i, 3) = Sheets("线上数据").Cells(j, 2) Then

    Sheets("Sheet1").Cells(i, 4) = "在线上查到数据了" '存在时进行标记
    Sheets("Sheet1").Cells(i, 4).Font.ColorIndex = 10
    Sheets("Sheet1").Cells(i, 4).Interior.ColorIndex = 2
    End If

    End If

    Next j

    Next i

    End Sub

    展开全文
  • 用kettle进行Excel文件输入,MySQL数据表输出...然后从工作表中选择表一 再获取字段,并进行预览 点确定 三,MySQL输出 首先输入自己的目标表**(指定数据库字段要勾选)** 然后执行SQL 执行成功后点击确定 数...

    用kettle进行Excel文件输入,MySQL数据表输出

    一, 连接数据库

    按F3
    在这里插入图片描述


    在这里插入图片出现该图则成功描述

    二, Excel输入

    首先将我们的Excel表在浏览里找到并添加(如果表的后缀名是.xsxl,选择2007年版本的Excel)
    然后从工作表中选择表一
    在这里插入图片描述
    再获取字段,并进行预览
    在这里插入图片描述
    点确定

    三,MySQL输出

    首先输入自己的目标表**(指定数据库字段要勾选)**
    在这里插入图片描述
    然后执行SQL
    执行成功后点击确定
    在这里插入图片描述
    在数据字段中获取字段
    在这里插入图片描述
    点击确定后启动

    在这里插入图片描述
    查看数据库中的表
    在这里插入图片描述

    展开全文
  • Java如何读取Excel表中数据

    千次阅读 2014-03-07 19:13:25
    比如写个关卡刷兵的数据,我们需要出兵的兵种,位置等信息,如果这些信息是写死程序,以后调试游戏难度及出兵信息对程序员将是个恶梦,想想如果有100关会怎么样? 解决办法就是将数据信息单拿出来放到数据文件...
  • 实现数据的录入与计算 ppt入门教程 如何让ppt与Excel工作表结合  PowerPoint实现数据的实时录入和自动计算小熊住山洞ppt课件/strong>?大多数老师使用PowerPoint制作教学课件,仅仅使用了PPT最简单的功能...
  • 因为数据有效性不能直接引用别的工作表的内容,故而首先必须将sheet2的A列内容(假设A1:A10)定义为一个名称,然后设置sheet1 A2单元格的数据有效性,具体操作如下: 1.按ctrl+F3打开定义名称对话框,...
  • 巧用Excel记录单快速输入数据

    千次阅读 2010-11-08 13:58:00
    如果工作表的数据量巨大,工作表的长度、宽度也会非常庞大,这样输入数据时就需要将很多宝贵的时间用来回切换行、列的位置上,甚至还容易出现错误。很多朋友选择将顶端标题行固定下来,但终究还是不太方便。其实,...
  • 在Excel中如何引用其他的工作表或者工作簿
  • In the article, Python scripts to format data in Microsoft Excel, we used Python scripts for creating an excel and do various data formatting. Python is an interesting high-level programming langu...
  • Excel引用其他工作表数据的几种方法

    万次阅读 2015-06-01 09:10:48
     假如要让Sheet2表中的A1单元格与Sheet1表中的A3单元格数据保持一致,只要Sheet2的A1单元格中输入公式:  =Sheet1!A3  另外,还可以Sheet2的A1单元格输入“=”,再切换到Sheet1表中,选择...
  • 现有一个Excel文件,里面存有很多个子,每个子格式一样,但是数据不一样,现要对每个子表中的好多行数据进行多项式拟合,并将拟合好的结果保存回Excel中各个子的指定位置。这本来是可以通过人工将所要拟合的...
  • 对多个Excel表中数据进行合并计算

    千次阅读 2007-04-11 17:46:00
    Excel 2007若要汇总和报告多个单独工作表的结果,可以将每个单独工作表中数据合并计算到一个主工作表中。这些工作表可以与主工作表在同一个工作簿,也可以位于其他工作簿。对数据进行合并计算就是组合数据,...
  • 上一篇文章,我重点讲述了使用df.loc[]方法获取excel表格数据。本文,我将继续这个话题,如何使用iloc[]方法获取数据。iloc是根据position获取的,pandas读取excel后会像数学坐标轴一样,将每个单元格进行...
  • Excel工作表中有各种数据类型,我们必须理解工作表不同数据类型的含义,分清它们之间的区别,才能更顺利的输入数据。同时各类数据的输入、使用和修改还有很多方法和技巧,了解和掌握它们可以帮助我们正确、高效地...
  • 如何保护Excel工作表

    万次阅读 2012-02-20 18:08:07
    保护工作薄是保护工作薄的窗口或者结构,举个例子,一个工作薄里面有3个工作表,你设置了工作薄保护,就只有解除工作薄保护之后才可以增加或者删除工作表,但对已经存在的工作表,可以进行编辑的,也就是你说的...
  • Excel表转换为MySQL库中数据表新建一个转换设置两个步骤保存查看数据表 先查看你要导入Excel表的的版本,主要观看其扩展名(.xls或.xlsx),这将决定你后面使用的表格的类型(引擎)。 又是还要查看文件的编码,即将...
  • 批量重命名excel工作表

    千次阅读 2014-12-16 22:36:41
    (1)新建一个工作表,置于最前,第一列输入 0 1 2 3 ... ,实现按第一列内容重命名工作表。 (2)按下ALT+F11,打开VBE窗口,单击插入——模块,复制下面代码,并运行   Sub 按A列数据修改表名称()  On ...
  • Excel工作表事件(2)- Change事件

    千次阅读 2020-02-29 15:34:48
    Excel工作表Change事件是最常用的事件代码之一,通俗的讲工作表内容发生变化,此事件将被激活。 Change事件的过程框架如下,其中参数Target是Range类型变量,代表工作表发生变化的单元格范围。 Private Sub ...
  • 一个工作薄包含多个工作表,第一个工作表制作目录,目录工作表中点击“公式”选项卡,选择“名称管理器”,将“=GET.WORKBOOK(1)”定义一个名称,本例定义成了“目录”,B3单元格中输入公式=IFERROR(MID(INDEX...
  • 在Excel中创建默认的工作簿工作表模板sheet.xlt和book.xlt  在Excel 2003可以保存的默认设置相当少,只有“工具→选项”的小部分设置可以被保存下来,对于最常用的页眉页脚、打印页边距、单元格格式...
  • 比如我Sheet2定义了几个数据,...但是我还要对当前的Sheet1设置只读(Sheet1只能被动的同步,只能Sheet2修改数据),则先全选当前工作簿,然后设置单元格格式,取消勾选"锁定"。  然后选...
  • matlab对Excel表读取数据

    万次阅读 多人点赞 2019-07-09 23:16:25
    目录 1.用xlsread函数读取一个Excel文件 2.读取指定sheet数据 ...filename是单引号括起来的带路径的文件名,函数直接读取filename所指文件的sheet1数据区域存储到双精度矩阵num;其中,数...
  • 接下来我们接着新建Excel工作表新建Excel文件基础上新增工作表。 using System; using System.Collections.Generic; using System.Linq; using System.Text; using System.Threading.Tasks; using Microsoft....
  • Excel单元格引用当前工作表名称

    千次阅读 2008-04-16 11:27:00
    有多份Excel表格表头标题都为“××学校第1次拉练考试××班成绩表”,由于工作表结构都是一样的,所以我每次都是复制工作表然后编辑修改表数据。但经常是表中数据修改了,表头标题的“第1次”忘记修改,造成...
  • 在工作中我们会遇到将通过数据手动录入到系统的需求,如果数据量比较小,那么手动输入是可行的,倘若数据量很大,那么这些数据手动录入将会是一个很大的工作量,为了简化这个手动录入的操作流程,我们可以使用...
  • python根据excel不同字段将工作表拆分为不同工作簿
  • 利用python对Excel中的特定数据提取并写入新

    万次阅读 多人点赞 2017-06-20 20:45:26
    最近刚开始学python,正好实习工作中遇到对excel中的... 实际的问题是要从excel表中提取日期、邮件地址和时间,然后统计一定时间段内某个人某个项目上用了多少时间,最后做成一张数据透视(这是问题的大致意思)。
  • excel数据批量插入到数据库表中

    万次阅读 2017-05-23 01:37:58
    // 在Excel文档中,第一张工作表的缺省索引是0 // 其语句为:HSSFSheet sheet = workbook.getSheetAt(0); HSSFSheet sheet = wookbook.getSheet("Sheet1"); // 获取到Excel文件的所有行数 int rows...

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 44,757
精华内容 17,902
关键字:

在excel工作表中输入数据时