精华内容
下载资源
问答
  • 文件运用了Microsoft office Excel 组件,对Excel文件进行读取和写入,并且加入了文件的选择和路径自定义,适用于初学者的学习及运用,最后还加入了部分算法,可以对表格的大量数据进行运算,功能十分全,而且注释...
  • 开发测试时候导入数据遇到大数据导入的问题,整理了下,需要的朋友可以参考下
  • WPS、Excel大量数据进行统计公式计算 对处理大量数据时,在wps、excel中,总会对数据进行统一公示处理,然而数据过多使用表格下拉的方法,会极大的浪费我们的时间,使用快捷键则成为首要之选。 输入公式 先输入...

    WPS、Excel对大量数据进行统计公式计算

    对处理大量数据时,在wps、excel中,总会对数据进行统一公示处理,然而数据过多使用表格下拉的方法,会极大的浪费我们的时间,使用快捷键则成为首要之选。

    输入公式

    先输入自己想要得到结果的公式,如图所示:
    在这里插入图片描述
    所选择的图片数据量不是很大,演示下方法。enter键得到结果!

    使用Shift键选择想要得到的区域结果

    在这里插入图片描述

    点击上方的公式,然后Ctrl+Enter就能使选择的区域以同样的公式计算

    在这里插入图片描述
    在这里插入图片描述
    其实很简单,网上好多答案解释不是很清楚,希望能帮到大家吧!

    展开全文
  • Python读写Excel实现大量数据处理 我们经常需要 导入数据到Excel、从Excel导出数据、对Excel中的数据进行处理。 如果 要处理的数据量很大,人工操作非常费时间。 我们可以通过Python程序,自动化Excel的数据处理,帮...

    Python读写Excel实现大量数据处理

    我们经常需要 导入数据到Excel、从Excel导出数据、对Excel中的数据进行处理。

    如果 要处理的数据量很大,人工操作非常费时间。

    我们可以通过Python程序,自动化Excel的数据处理,帮我们节省大量的时间。

    读取Excel中的数据

    如果我们只是要 读取 Excel文件里面的数据进行处理,可以使用 xlrd 这个库。

    首先我们安装xlrd库,执行下面的命令

    pip install xlrd==1.2.0
    

    注意:xlrd 新版本只支持 xls 格式,所以我们这里指定安装 1.2.0 老版本,可以支持xlsx格式。

    请大家 点击这里,下载 Excel文件 income.xlsx

    这个文件里面有 3 个表单,分别记录了2018、2017、2016年 的月收入,如下所示

    img

    如果我们想用程序统计 2016、2017、2018 三年所有月收入的总和,但是不要包含 打星号 的那些月份。

    怎么做?

    一步步来,我们先学会如何用Python程序读取Excel单元格中的内容。

    xlrd 库里面的 open_workbook 函数打开Excel文件,并且返回一个 Book对象 ,这个对象代表打开的 Excel 文件。

    可以通过这个Book对象得到Excel文件的很多信息,比如 获取 Excel 文件中表单(sheet) 的数量 和 所有 表单(sheet) 的名字。

    我们可以用如下代码,读取 该文件中表单的数量和名称:

    import xlrd
    
    book = xlrd.open_workbook("income.xlsx")
    
    print(f"包含表单数量 {book.nsheets}")
    print(f"表单的名分别为: {book.sheet_names()}")
    

    要读取某个表单里单元格中的数据,必须要先获取 表单(sheet)对象

    可以根据表单的索引 或者 表单名获取 表单对象,使用如下对应的方法

    # 表单索引从0开始,获取第一个表单对象
    book.sheet_by_index(0)
    
    # 获取名为2018的表单对象
    book.sheet_by_name('2018')
    
    # 获取所有的表单对象,放入一个列表返回
    book.sheets()
    

    表单对象所有属性和方法的描述, 可以点击这里,查看官方文档

    获取了表单对象后,可以根据其属性得到:

    表单行数(nrows)
    列数(ncols)
    表单名(name)
    表单索引(number)
    

    如下

    import xlrd
    
    book = xlrd.open_workbook("income.xlsx")
    
    sheet = book.sheet_by_index(0)
    print(f"表单名:{sheet.name} ")
    print(f"表单索引:{sheet.number}")
    print(f"表单行数:{sheet.nrows}")
    print(f"表单列数:{sheet.ncols}")
    

    获取了表单对象后,可以使用 cell_value 方法,参数为行号和列号,读取指定单元格中的文本内容。如下所示:

    import xlrd
    
    book = xlrd.open_workbook("income.xlsx")
    
    sheet = book.sheet_by_index(0)
    
    # 行号、列号都是从0开始计算
    print(f"单元格A1内容是: {sheet.cell_value(rowx=0, colx=0)}")
    

    运行结果输出

    单元格A1内容是: 月份
    

    还可以使用 row_values 方法,参数为行号,读取指定行所有单元格的内容,存放在一个列表中返回。

    如下所示:

    import xlrd
    
    book = xlrd.open_workbook("income.xlsx")
    
    sheet = book.sheet_by_index(0)
    
    # 行号、列号都是从0开始计算
    print(f"第一行内容是: {sheet.row_values(rowx=0)}")
    

    运行结果输出

    第一行内容是: ['月份', '收入']
    

    还可以使用 col_values 方法,参数为列号,读取指定列所有单元格的内容,存放在一个列表中返回。

    如下所示:

    import xlrd
    
    book = xlrd.open_workbook("income.xlsx")
    
    sheet = book.sheet_by_index(0)
    
    # 行号、列号都是从0开始计算
    print(f"第一列内容是: {sheet.col_values(colx=0)}")
    

    运行结果输出

    第一列内容是: ['月份', 1.0, 2.0, 3.0, 4.0, 5.0, 6.0, 7.0, 8.0, 9.0, 10.0, 11.0, 12.0]
    

    可以看出,数字以小数的形式返回了。

    有了这些方法,我们就可以完成一些数据处理任务了。比如我们要计算 2017年 全年的收入就可以这样

    import xlrd
    
    book = xlrd.open_workbook("income.xlsx")
    
    sheet = book.sheet_by_name('2017')
    
    # 收入在第2列
    incomes = sheet.col_values(colx=1,start_rowx=1)
    
    print(f"2017年收入为: {sum(incomes)}")
    

    那么我们怎么在汇总收入中,去掉包含星号的月份收入呢?

    就需要我们查出哪些月份是带星号的,不要统计在内。

    参考下面的代码

    import xlrd
    
    book = xlrd.open_workbook("income.xlsx")
    
    sheet = book.sheet_by_name('2017')
    
    # 收入在第2列
    incomes = sheet.col_values(colx=1,start_rowx=1)
    
    print(f"2017年账面收入为: {int(sum(incomes))}")
    
    # 去掉包含星号的月份收入
    toSubstract = 0
    # 月份在第1列
    monthes = sheet.col_values(colx=0)
    
    for row,month in enumerate(monthes):
        if type(month) is str and month.endswith('*'):
            income = sheet.cell_value(row,1)
            print(month,income)
            toSubstract += income
    
    print(f"2017年真实收入为: {int(sum(incomes)- toSubstract)}")
    

    最后,要得到3年的收入,就要获取所有的sheet对象,采用上面的计算方法,最后把收入相加。

    如下所示:

    import xlrd
    
    book = xlrd.open_workbook("income.xlsx")
    
    # 得到所有sheet对象
    sheets = book.sheets()
    
    incomeOf3years = 0
    for sheet in sheets:
        # 收入在第2列
        incomes = sheet.col_values(colx=1,start_rowx=1)
        # 去掉包含星号的月份收入
        toSubstract = 0
        # 月份在第1列
        monthes = sheet.col_values(colx=0)
    
        for row,month in enumerate(monthes):
            if type(month) is str and month.endswith('*'):
                income = sheet.cell_value(row,1)
                print(month,income)
                toSubstract += income
    
        actualIncome = int(sum(incomes)- toSubstract)
        print(f"{sheet.name}年真实收入为: {actualIncome}")
        incomeOf3years += actualIncome
    
    print(f'全部收入为{incomeOf3years}')
    

    新建Excel,写入数据

    xlrd 只能读取Excel内容,如果你要 创建 一个新的Excel并 写入 数据,可以使用 openpyxl 库。

    openpyxl 库既可以读文件、也可以写文件、也可以修改文件。

    但是,openpyxl 库不支持老版本 Office2003 的 xls 格式的Excel文档,如果要读写xls格式的文档,可以使用 Excel 进行相应的格式转化。

    执行 pip install openpyxl 安装该库

    点击这里,查看openpyxl参考文档

    下面的代码,演示了 openpyxl 的 一些基本用法。

    import openpyxl
    
    # 创建一个Excel workbook 对象
    book = openpyxl.Workbook()
    
    # 创建时,会自动产生一个sheet,通过active获取
    sh = book.active
    
    # 修改当前 sheet 标题为 工资表
    sh.title = '工资表'
    
    # 保存文件
    book.save('信息.xlsx')
    
    # 增加一个名为 '年龄表' 的sheet,放在最后
    sh1 = book.create_sheet('年龄表-最后')
    
    # 增加一个 sheet,放在最前
    sh2 = book.create_sheet('年龄表-最前',0)
    
    # 增加一个 sheet,指定为第2个表单
    sh3 = book.create_sheet('年龄表2',1)
    
    # 根据名称获取某个sheet对象
    sh = book['工资表']
    
    # 给第一个单元格写入内容
    sh['A1'] = '你好'
    
    # 获取某个单元格内容
    print(sh['A1'].value)
    
    # 根据行号列号, 给第一个单元格写入内容,
    # 注意和 xlrd 不同,是从 1 开始
    sh.cell(2,2).value = '白月黑羽'
    
    # 根据行号列号, 获取某个单元格内容
    print(sh.cell(1, 1).value)
    
    book.save('信息.xlsx')
    

    下面的示例代码 将 保存在字典中的年龄表的内容 写入到excel文件中

    import openpyxl
    
    name2Age = {
        '张飞' :  38,
        '赵云' :  27,
        '许褚' :  36,
        '典韦' :  38,
        '关羽' :  39,
        '黄忠' :  49,
        '徐晃' :  43,
        '马超' :  23,
    }
    
    # 创建一个Excel workbook 对象
    book = openpyxl.Workbook()
    
    # 创建时,会自动产生一个sheet,通过active获取
    sh = book.active
    
    sh.title = '年龄表'
    
    # 写标题栏
    sh['A1'] =  '姓名'
    sh['B1'] =  '年龄'
    
    # 写入内容
    row = 2
    
    for name,age in name2Age.items():
        sh.cell(row, 1).value = name
        sh.cell(row, 2).value = age
        row += 1
    
    # 保存文件
    book.save('信息.xlsx')
    

    如果你的数据在一个列表或者元组中,可以使用append方法在sheet的末尾添加新行,写入数据,比如

    import openpyxl
    
    name2Age = [
        ['张飞' ,  38 ] ,
        ['赵云' ,  27 ] ,
        ['许褚' ,  36 ] ,
        ['典韦' ,  38 ] ,
        ['关羽' ,  39 ] ,
        ['黄忠' ,  49 ] ,
        ['徐晃' ,  43 ] ,
        ['马超' ,  23 ]
    ]
    
    # 创建一个Excel workbook 对象
    book = openpyxl.Workbook()
    sh = book.active
    sh.title = '年龄表'
    
    # 写标题栏
    sh['A1'] =  '姓名'
    sh['B1'] =  '年龄'
    
    for row in name2Age:
        # 添加到下一行的数据
        sh.append(row)
    
    # 保存文件
    book.save('信息.xlsx')
    

    修改Excel中的数据

    如果你想 修改 已经存在的Excel 文件,也可以使用 openpyxl 库。

    修改单元格内容

    比如

    import openpyxl
    
    # 加载 excel 文件
    wb = openpyxl.load_workbook('income.xlsx')
    
    # 得到sheet对象
    sheet = wb['2017']
    
    sheet['A1'] = '修改一下'
    
    ## 指定不同的文件名,可以另存为别的文件
    wb.save('income-1.xlsx')
    

    插入行、插入列

    sheet 对象的 insert_rowsinsert_cols 方法,分别用来插入 , 比如

    import openpyxl
    
    wb = openpyxl.load_workbook('income.xlsx')
    sheet = wb['2018']
    
    # 在第2行的位置插入1行
    sheet.insert_rows(2)
    
    # 在第3行的位置插入3行
    sheet.insert_rows(3,3)
    
    # 在第2列的位置插入1列
    sheet.insert_cols(2)
    
    # 在第2列的位置插入3列
    sheet.insert_cols(2,3)
    
    ## 指定不同的文件名,可以另存为别的文件
    wb.save('income-1.xlsx')
    

    删除行、删除列

    sheet 对象的 delete_rowsdelete_cols 方法,分别用来插入 , 比如

    import openpyxl
    
    wb = openpyxl.load_workbook('income.xlsx')
    sheet = wb['2018']
    
    # 在第2行的位置删除1行
    sheet.delete_rows(2)
    
    # 在第3行的位置删除3行
    sheet.delete_rows(3,3)
    
    # 在第2列的位置删除1列
    sheet.delete_cols(2)
    
    # 在第3列的位置删除3列
    sheet.delete_cols(3,3)
    
    ## 指定不同的文件名,可以另存为别的文件
    wb.save('income-1.xlsx')
    

    文字 颜色、字体、大小

    单元格里面的 样式风格 (包括 颜色、字体、大小、下划线 等) 都是通过 Font 对象设定的

    import openpyxl
    # 导入Font对象 和 colors 颜色常量
    from openpyxl.styles import Font,colors
    
    wb = openpyxl.load_workbook('income.xlsx')
    sheet = wb['2018']
    
    # 指定单元格字体颜色,
    sheet['A1'].font = Font(color=colors.RED, #使用预置的颜色常量
                            size=15,    # 设定文字大小
                            bold=True,  # 设定为粗体
                            italic=True # 设定为斜体
                            )
    
    # 也可以使用RGB数字表示的颜色
    sheet['B1'].font = Font(color="981818")
    
    # 指定整行 字体风格, 这里指定的是第3行
    font = Font(color="981818")
    for y in range(1, 100): # 第 1 到 100 列
        sheet.cell(row=3, column=y).font = font
    
    # 指定整列 字体风格, 这里指定的是第2列
    font = Font(bold=True)
    for x in range(1, 100): # 第 1 到 100 行
        sheet.cell(row=x, column=2).font = font
    
    wb.save('income-1.xlsx')
    

    背景色

    import openpyxl
    # 导入Font对象 和 colors 颜色常量
    from openpyxl.styles import PatternFill
    
    wb = openpyxl.load_workbook('income.xlsx')
    sheet = wb['2018']
    
    # 指定 某个单元格背景色
    sheet['A1'].fill = PatternFill("solid", "E39191")
    
    # 指定 整行 背景色, 这里指定的是第2行
    fill = PatternFill("solid", "E39191")
    for y in range(1, 100): # 第 1 到 100 列
        sheet.cell(row=2, column=y).fill = fill
    
    wb.save('income-1.xlsx')
    

    插入图片

    下面是插入图片的代码

    import openpyxl
    from openpyxl.drawing.image import Image
    
    wb = openpyxl.load_workbook('income.xlsx')
    sheet = wb['2018']
    
    # 在第1行,第4列 的位置插入图片
    sheet.add_image(Image('1.png'), 'D1')
    
    ## 指定不同的文件名,可以另存为别的文件
    wb.save('income-1.xlsx')
    

    Excel COM接口

    在Windows平台上,还可以通过 Excel 应用的 COM 接口 来对Excel进行操作。

    这个方法相当于使用Python程序 通过 Excel应用 自己去修改,当然没有任何的副作用

    而且能够实现一些特殊的功能,比如 自动打印Excel、合并单元格 等。

    COM接口的特点是:打开文件快,读写速度慢。

    使用 Excel COM 接口 打开 超大 Excel文件 比上面的两个库 要快很多。因为Excel程序本身的优化,可以部分加载,而上面的两个库是全部先读入内存。

    如果你只是从 大Excel文件中 读取或修改少量数据,Excel COM 接口会快很多。

    但是,如果你要读取大Excel中的大量数据,不要使用 COM接口,会非常的慢。

    使用 Excel COM 接口,首先需要安装pywin32库,在命令行窗口输入如下命令:

    pip install pywin32
    

    比如可以这样修改

    import win32com.client
    excel = win32com.client.Dispatch("Excel.Application")
    
    # excel.Visible = True     # 可以让excel 可见
    
    # 这里填写要修改的Excel文件的绝对路径
    workbook = excel.Workbooks.Open(r"d:\tmp\income1.xlsx")
    
    # 得到 2017 表单
    sheet = workbook.Sheets('2017')
    
    # 修改表单第一行第一列单元格内容
    # com接口,单元格行号、列号从1开始
    sheet.Cells(1,1).Value="你好"
    
    # 保存内容
    workbook.Save()
    
    # 关闭该Excel文件
    workbook.Close()
    
    # excel进程退出
    excel.Quit()
    
    # 释放相关资源
    sheet = None
    book = None
    excel.Quit()
    excel = None
    

    运行一下可以发现Excel内容也能修改。

    关于使用com接口操作Excel具体细节, 可以点击这里,参考微软官方文档

    COM 接口、xlrd库 打开数据文件 和 读取数据的性能对比,大家可以参考下面这段代码。

    import time
    
    def byCom():
        t1 = time.time()
        import win32com.client
        excel = win32com.client.Dispatch("Excel.Application")
    
        # excel.Visible = True     # 可以让excel 可见
        workbook = excel.Workbooks.Open(r"h:\tmp\ruijia\数据.xlsx")
    
        sheet = workbook.Sheets(2)
    
        print(sheet.Cells(2,15).Value)
        print(sheet.UsedRange.Rows.Count)  #多少行
    
        t2 = time.time()
        print(f'打开: 耗时{t2 - t1}秒')
    
        total = 0
        for row in range(2,sheet.UsedRange.Rows.Count+1):
            value = sheet.Cells(row,15).Value
            if type(value) not in [int,float]:
                continue
            total += value
    
        print(total)
    
        t3 = time.time()
        print(f'读取数据: 耗时{t3 - t2}秒')
    
    
    def byXlrd():
        t1 = time.time()
        import xlrd
    
        # 加载 excel 文件
        srcBook = xlrd.open_workbook("数据.xlsx")
        sheet = srcBook.sheet_by_index(1)
    
        print(sheet.cell_value(rowx=1,colx=14))
        print(sheet.nrows) #多少行
    
        t2 = time.time()
        print(f'打开: 耗时{t2 - t1}秒')
    
        total = 0
        for row in range(1,sheet.nrows):
            value = sheet.cell_value(row, 14)
            if type(value) == str:
                continue
            total += value
    
        print(total)
    
        t3 = time.time()
        print(f'读取数据: 耗时{t3 - t2}秒')
    
    byCom()
    byXlrd()
    
    展开全文
  • ExMod串口调试助手主要功能是发送大量串口数据,设计目标是满足上位机串口编程调试之,是个人把在上位机编程中常用的模拟调试功能汇总到一个调试软件中而成。除普通串口调试助手功能外,还包括发送文件中数据、...
  • 查过百度,很多说@ole函数的,但就一句话定没有详细解释, ...就像截图中给出的数据,如何导入excel表格中去!! ![图片说明](https://img-ask.csdn.net/upload/201908/11/1565456035_201239.png)
  • 本书全面系统地介绍了Excel 2013数据透视表的技术特点和应用方法,深入揭示数据透视表的原理,并配合大量典型实用的应用实例,帮助读者全面掌握Excel 2013数据透视表技术。 本书共23章,分别介绍创建数据透视表,...
  • 如果碰到需要导出大量数据又该如何操作呢?本文主要解决以上两个问题。(2)具体步骤如下:1.第一步,安装openpyxl,使用pip install openpyxl即可,但是在windows下安装的是2.2.6版本,但是centos自动安装的是4.1...

    (1) 问题描述:为了更好地展示数据,Excel格式的数据文件往往比文本文件更具有优势,但是具体到python中,该如何导出数据到Excel呢?如果碰到需要导出大量数据又该如何操作呢?

    本文主要解决以上两个问题。

    (2)具体步骤如下:

    1.第一步,安装openpyxl,

    使用pip install openpyxl即可,但是在windows下安装的是2.2.6版本,但是centos自动安装的是4.1版本,(多谢海哥的提醒)。

    写的代码在windows下运行没问题,但centos上却报错了,说是ew=ExcelWriter(workbook=wb)少提供一个参数,于是果断在 237服务器上我已安装2.2.6版本的,问题解决。

    pip install openpyxl==2.2.6

    2.第二步,哈哈,没有啦,废话不说了,直接上代码,ps,代码中包含xlwt和openpyxl的两个实现版本。

    (3)扩展阅读:通过查阅资料,发现网上众说纷纭,总结起来有如下几点:

    python Excel相关的操作的module lib有两组,一组是xlrd、xlwt、xlutils,另一组是openpyxl,

    但是前一组(xlrd,xlwt)比较老,只能处理由Excel 97-2003 或者Excel 97 以前版本生成的xls格式的excel文件,xlwt甚至不支持07版以后的excel ,这个格式excel文件一般来说,最大只能支持256列或者65536行的excel文件。

    因此面对需要导出大量数据到excel的情况,你将有如下三种选择,

    (1) 换一种存储格式,如保存为CSV文件

    (2) 使用openpyxl—,因为它支持对Excel 2007+ xlsx/xlsm format的处理

    (3) win32 COM (Windows only)

    当然,我们要直面困难了,为了更好地展示数据给产品和用户,我们依然选择的第二种。

    ps,非常lucky,一番搜索后我找到了openpyxl,支持07+的excel,一直有人在维护,文档清晰易读,参照Tutorial和API文档很快就能上手,就是它了~

    (4) 闲话少说,直接上代码,敬请参考

    # coding:utf-8

    '''

    # 希望对大家有帮助哈,请多提问题

    create by yaoyz

    date: 2017/01/24

    '''

    import xlrd

    import xlwt

    # workbook相关

    from openpyxl.workbook import Workbook

    # ExcelWriter,封装了很强大的excel写的功能

    from openpyxl.writer.excel import ExcelWriter

    # 一个eggache的数字转为列字母的方法

    from openpyxl.utils import get_column_letter

    from openpyxl.reader.excel import load_workbook

    class HandleExcel():

    '''Excel相关操作类'''

    def __init__(self):

    self. head_row_labels = [u'学生ID',u'学生姓名',u'联系方式',u'知识点ID',u'知识点名称']

    """

    function:

    读出txt文件中的每一条记录,把它保存在list中

    Param:

    filename: 要读出的文件名

    Return:

    res_list: 返回的记录的list

    """

    def read_from_file(self,filename):

    res_list=[]

    file_obj=open(filename,"r")

    for line in file_obj.readlines():

    res_list.append(line)

    file_obj.close()

    return res_list

    """

    function:

    读出*.xlsx中的每一条记录,把它保存在data_dic中返回

    Param:

    excel_name: 要读出的文件名

    Return:

    data_dic: 返回的记录的dict

    """

    def read_excel_with_openpyxl(self, excel_name="testexcel2007.xlsx"):

    # 读取excel2007文件

    wb = load_workbook(filename=excel_name)

    # 显示有多少张表

    print "Worksheet range(s):" , wb.get_named_ranges()

    print "Worksheet name(s):" , wb.get_sheet_names()

    # 取第一张表

    sheetnames = wb.get_sheet_names()

    ws = wb.get_sheet_by_name(sheetnames[0])

    # 显示表名,表行数,表列数

    print "Work Sheet Titile:" ,ws.title

    print "Work Sheet Rows:" ,ws.get_highest_row()

    print "Work Sheet Cols:" ,ws.get_highest_column()

    # 获取读入的excel表格的有多少行,有多少列

    row_num=ws.get_highest_row()

    col_num=ws.get_highest_column()

    print "row_num: ",row_num," col_num: ",col_num

    # 建立存储数据的字典

    data_dic = {}

    sign=1

    # 把数据存到字典中

    for row in ws.rows:

    temp_list=[]

    # print "row",row

    for cell in row:

    print cell.value,

    temp_list.append(cell.value)

    print ""

    data_dic[sign]=temp_list

    sign+=1

    print data_dic

    return data_dic

    """

    function:

    读出*.xlsx中的每一条记录,把它保存在data_dic中返回

    Param:

    records: 要保存的,一个包含每一条记录的list

    save_excel_name: 保存为的文件名

    head_row_stu_arrive_star:

    Return:

    data_dic: 返回的记录的dict

    """

    def write_to_excel_with_openpyxl(self,records,head_row,save_excel_name="save.xlsx"):

    # 新建一个workbook

    wb = Workbook()

    # 新建一个excelWriter

    ew = ExcelWriter(workbook=wb)

    # 设置文件输出路径与名称

    dest_filename = save_excel_name.decode('utf-8')

    # 第一个sheet是ws

    ws = wb.worksheets[0]

    # 设置ws的名称

    ws.title = "range names"

    # 写第一行,标题行

    for h_x in range(1,len(head_row)+1):

    h_col=get_column_letter(h_x)

    #print h_col

    ws.cell('%s%s' % (h_col, 1)).value = '%s' % (head_row[h_x-1])

    # 写第二行及其以后的那些行

    i = 2

    for record in records:

    record_list=str(record).strip().split(" ")

    for x in range(1,len(record_list)+1):

    col = get_column_letter(x)

    ws.cell('%s%s' % (col, i)).value = '%s' % (record_list[x-1].decode('utf-8'))

    i += 1

    # 写文件

    ew.save(filename=dest_filename)

    """

    function:

    测试输出Excel内容

    读出Excel文件

    Param:

    excel_name: 要读出的Excel文件名

    Return:

    """

    def read_excel(self,excel_name):

    workbook=xlrd.open_workbook(excel_name)

    print workbook.sheet_names()

    # 获取所有sheet

    print workbook.sheet_names() # [u'sheet1', u'sheet2']

    sheet2_name = workbook.sheet_names()[1]

    # 根据sheet索引或者名称获取sheet内容

    sheet2 = workbook.sheet_by_index(1) # sheet索引从0开始

    sheet2 = workbook.sheet_by_name('Sheet1')

    # sheet的名称,行数,列数

    print sheet2.name,sheet2.nrows,sheet2.ncols

    # 获取整行和整列的值(数组)

    rows = sheet2.row_values(3) # 获取第四行内容

    cols = sheet2.col_values(2) # 获取第三列内容

    print rows

    print cols

    # 获取单元格内容

    print sheet2.cell(1,0).value

    print sheet2.cell_value(1,0)

    print sheet2.row(1)[0].value

    # 获取单元格内容的数据类型

    print sheet2.cell(1,0).ctype

    # 通过名称获取

    return workbook.sheet_by_name(u'Sheet1')

    """

    function:

    设置单元格样式

    Param:

    name: 字体名字

    height: 字体高度

    bold: 是否大写

    Return:

    style: 返回设置好的格式对象

    """

    def set_style(self,name,height,bold=False):

    style = xlwt.XFStyle() # 初始化样式

    font = xlwt.Font() # 为样式创建字体

    font.name = name # 'Times New Roman'

    font.bold = bold

    font.color_index = 4

    font.height = height

    borders= xlwt.Borders()

    borders.left= 6

    borders.right= 6

    borders.top= 6

    borders.bottom= 6

    style.font = font

    style.borders = borders

    return style

    """

    function:

    按照 设置单元格样式 把计算结果由txt转变为Excel存储

    Param:

    dataset:要保存的结果数据,list存储

    Return:

    将结果保存为 excel对象中

    """

    def write_to_excel(self, dataset,save_excel_name,head_row):

    f = xlwt.Workbook() # 创建工作簿

    # 创建第一个sheet:

    # sheet1

    count=1

    sheet1 = f.add_sheet(u'sheet1', cell_overwrite_ok=True) # 创建sheet

    # 首行标题:

    for p in range(len(head_row)):

    sheet1.write(0,p,head_row[p],self.set_style('Times New Roman',250,True))

    default=self.set_style('Times New Roman',200,False) # define style out the loop will work

    for line in dataset:

    row_list=str(line).strip(" ").split(" ")

    for pp in range(len(str(line).strip(" ").split(" "))):

    sheet1.write(count,pp,row_list[pp].decode('utf-8'),default)

    count+=1

    f.save(save_excel_name) # 保存文件

    def run_main_save_to_excel_with_openpyxl(self):

    print "测试读写2007及以后的excel文件xlsx,以方便写入文件更多数据"

    print "1. 把txt文件读入到内存中,以list对象存储"

    dataset_list=self.read_from_file("test_excel.txt")

    '''test use openpyxl to handle EXCEL 2007'''

    print "2. 把文件写入到Excel表格中"

    head_row_label=self.head_row_labels

    save_name="test_openpyxl.xlsx"

    self.write_to_excel_with_openpyxl(dataset_list,head_row_label,save_name)

    print "3. 执行完毕,由txt格式文件保存为Excel文件的任务"

    def run_main_save_to_excel_with_xlwt(self):

    print " 4. 把txt文件读入到内存中,以list对象存储"

    dataset_list=self.read_from_file("test_excel.txt")

    '''test use xlwt to handle EXCEL 97-2003'''

    print " 5. 把文件写入到Excel表格中"

    head_row_label=self.head_row_labels

    save_name="test_xlwt.xls"

    self.write_to_excel_with_openpyxl(dataset_list,head_row_label,save_name)

    print "6. 执行完毕,由txt格式文件保存为Excel文件的任务"

    if __name__ == '__main__':

    print "create handle Excel Object"

    obj_handle_excel=HandleExcel()

    # 分别使用openpyxl和xlwt将数据写入文件

    obj_handle_excel.run_main_save_to_excel_with_openpyxl()

    obj_handle_excel.run_main_save_to_excel_with_xlwt()

    '''测试读出文件,注意openpyxl不可以读取xls的文件,xlrd不可以读取xlsx格式的文件'''

    #obj_handle_excel.read_excel_with_openpyxl("testexcel2003.xls") # 错误写法

    #obj_handle_excel.read_excel_with_openpyxl("testexcel2003.xls") # 错误写法

    obj_handle_excel.read_excel("testexcel2003.xls")

    obj_handle_excel.read_excel_with_openpyxl("testexcel2007.xlsx")

    以上这篇使用python将大量数据导出到Excel中的小技巧分享就是小编分享给大家的全部内容了,希望能给大家一个参考,也希望大家多多支持脚本之家。

    展开全文
  • Excel 2010数据透视表应用大全》共20章,分别介绍了创建数据透视表、改变数据透视表的布局、刷新数据透视表、数据透视表的格式设置、在数据透视表中排序和筛选、数据透视表的切片器、数据透视表的项目组合、在数据...
  • 读取excel模版的数据,然后再根据数据库里的公式进行计算例如E8+((E7-E3)-F4-G8)/E5+(E5-H3)-S2公式有许多条,不固定格式。已经读出了excel数据,就是不知道怎么把公式里的格子替换成excel里的对应格子数据,...
  • Matlab对excel数据进行批处理

    万次阅读 2015-05-11 20:47:47
    matlab读取excel中的数据供处理,数据处理完后写入新的excel文件

    写在前面:决定从当下开始,多写写零碎在学的知识,一来巩固,二来学习也应当是一个相互的过程,只有自己学会了还能教会别人,才算真正的掌握。自己不是计算机相关专业的,但选择CSDN而不是新浪,关键是感觉这里明显比较有知识的氛围。

    前几天在外面找个兼职,需要写段代码处理大量的excel表格,最开始想到的是用python + openpyxl,但是对openpyxl第一次接触,最后还是选择了比较擅长的matlab,matlab中涉及到excel的处理的主要就三个函数,xlsfinfo,xlsread,xlswrite,由于matlab已经完全屏蔽了复杂的底层操作,使用这三个简单的函数配合matlab的运算能力,基本上就能满足随意处理数据的需求了。简单的流程是先用xlsinfo返回excel文件的信息(根据具体的需要):

    • [status,sheets,xlFormat] = xlsfinfo(filename)
    其中主要的一个信息是sheets,它可以告诉你一个.xlsx文档中有多少个工作表(sheet),返回值sheets的格式为cell array,对cell array索引有两种,一种用大括号,一种用小括号,但返回结果的数据类型不同,sheets{1}返回字符串,即工作表的名字,指sheets中第一个cell的值,而sheets(1)仍然是cell array,指第一个cell,所以小括号可以分片索引。读工作表中的数据用xlsread,几种典型的调用方式如下:

    展开全文
  • 本书全面系统地介绍了Excel数据透视表的技术特点和应用方法,深入揭示数据透视表的原理,并配合大量典型实用的应用实例,帮助读者全面掌握Excel数据透视表技术。 本书共18章,分别介绍创建数据透视表,改变数据透视...
  • Excel数据透视表应用大全》全面系统地介绍了Excel数据透视表的技术特点和应用方法,深入揭示数据透视表的原理,并配合大量典型实用的应用实例,帮助读者全面掌握Excel数据透视表技术。《Excel数据透视表应用大全》...
  • 如何使用python将大量数据导出到Excel中的小技巧    (1) 问题描述:为了更好地展示数据,Excel格式的数据文件往往比文本文件更具有优势,但是具体到python中,该如何导出数据到Excel呢?如果碰到需要导出大量...
  • 分别介绍了创建数据透视表、改变数据透视表的布局、刷新数据透视表、数据透视表的格式设置、在数据透视表中排序和筛选、数据透视表的切片器、数据透视表的项目组合、在数据透视表中执行计算数据透视表函数的综合...
  • Excel计算Fleiss Kappa分数

    千次阅读 2020-11-10 14:47:45
    这个分数是用来评估多名评估员对于一系列观测样本的评估的一致性。Fleiss Kappa分越高,说明分歧越...先进行横向比较,PiP_iPi​表明的是对于第i个样本,大家的一致程度, 其计算公式是这一行(所有数据的平方和-n)/(n*(n
  • 如何使用python将大量数据导出到Excel中的小技巧 (1) 问题描述:为了更好地展示数据,Excel格式的数据文件往往比文本文件更具有优势,但是具体到python中,该如何导出数据到Excel呢?如果碰到需要导出大量数据又...
  • excel不够用时,如何利用Access进行数据分析?

    万次阅读 多人点赞 2019-01-08 09:23:57
    数据量太大,Excel拖不动怎么办?还有其他能取代Excel但易上手的工具么?... 数据若不是达到亿万级别,直接BI工具分析 再大,就不是尔等表哥表姐,数据分析师能解决的了。 鉴于大家都有一般日常...
  • 文章转载自:微信公众号 Python的乐趣作者:一粒米饭比如像电商行业,每月有上百万条订单发货数据需要与仓库的数据进行核对计算,涉及到数据计算,筛选,匹配等步骤,用excel表超级卡,并且经常卡死。这时如果你会...
  • 计算如下参数的二项分布和泊松分布 二项分布 1、选中单元框,添加函数 2、选中统计类函数 3、选择二项分布概率函数 4、输入相应的参数 注: (1)在输入参数时点击相应的单元格即可 (2)最后一个...
  • Excel中想要知道个各部分所占的百分比,不需要每个数据单独去算,下面的方法可以下拉复制公式,进行批量快速地计算百分比。 求出B列到总和 点击C2单元格,输入公式=B2/$B$15 ,其中“$”是整个公式的关键点,表示...
  • 但是我最近接触了一款更好用的大数据分析工具——Smartbi,瞬间弃用Excel数据透视表,迫不及待想要分享给大家。一般工具的好需要专业的数据分析师,但Smartbi能让普通的业务人员也轻松上手。 1、Smartbi适用...
  • excel数据处理

    千次阅读 多人点赞 2019-01-12 21:08:25
    excel大部分常用操作
  • (1) 问题描述:为了更好地展示数据,Excel格式的数据文件往往比文本文件更具有优势,但是具体到...如果碰到需要导出大量数据又该如何操作呢?本文主要解决以上两个问题。 PS注意:很多人学Python过程中会遇到...
  • 数据分析--Excel数据可视化(图表)

    千次阅读 2020-11-06 18:03:23
    Excel组成元素 Excel图表类型与用途
  • 《基于Excel的地理数据分析》面向地理问题,基于Excel软件,叙述大量数学方法的应用思路和过程。内容涉及回归分析、主成分分析、聚类分析、判别分析、时(空)问序列分析、Markov链、R/S分析、线性规划、层次分析、...
  • 用excel数据分析必知的编程语言

    千次阅读 2020-11-09 14:46:49
    Excel已有30多年的历史,至今仍在全球各个国家/地区每天都在使用Excel来存储,处理和分析数据。它的用途非常广泛,因此成为Excel向导可以极大地提高你的收入。  但是Excel虽然很棒,但也有其局限性。如果你每天都...
  • 解决poi大数据量导出excel的代码,该代码中所用的jar包是poi3.9。在测试过程中单个sheet中导出20万数据没有问题。
  • Python数据分析之批量统计excel文件

    万次阅读 多人点赞 2020-10-16 09:13:15
    其中xlrd是read_excel需要的。 import zipfile import os import pandas as pd import os import xlrd import json import pygeoip 2. 批量解压zip文件   由于给定的文件夹中文件鱼龙混杂,还有文件名中包括空格...

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 26,621
精华内容 10,648
关键字:

如何用excel计算大量数据