zoukankan      html  css  js  c++  java
  • python Excel 写

    XlsxWriter

    1.优点

    一、功能比较强

    相对而言,这是除Excel自身之外功能最强的工具了。比如我就用到了它提供的:字体设置、前景色背景色、border设置、视图缩放(zoom)、单元格合并、autofilter、freeze panes、公式、data validation、单元格注释、行高和列宽设置等等。

    二、支持大文件写入

    如果数据量非常大,可以启用constant memory模式,这是一种顺序写入模式,得到一行数据就立刻写入一行,而不会把所有的数据都保持在内存中。

    官网:https://xlsxwriter.readthedocs.io/index.html

    2.缺点

    一、不支持读取和修改

    作者并没有打算做一个XlsxReader来提供读取操作。不能读取,也就无从修改了。它只能用来创建新的文件。我是利用xlrd把需要的信息读入后,用XlsxWriter创建全新的文件。

    另外,即使是创建到一半Excel文件,也是无法读取已经创建出来的内容的(信息应该在,但是并没有相应的接口)。因为它的主要方法是write而不是set。当你在某个单元格写入数据后,除非你自己保存了相关的内容,否则还是没有办法读出已经写入的信息。从这个角度看,你无法做到读出->修改->写回,只能是写入->写入->写入。

    二、不支持XLS文件

    XLS是Office 2013或更早版本所使用的格式,是一种二进制格式的文件。XLSX则是用一系列XML文件组成的(最后的X代表了XML)一个压缩包。如果非要创建低版本的XLS文件,就请移步xlwt吧。

    三、暂时不支持透视表(Pivot Table

    3.基本操作方法

    • 创建excel文件
    import xlsxwriter
    
    f = xlsxwriter.Workbook()    # 创建excel文件
    
    
    • 创建工作表
    worksheet1 = f.add_worksheet('操作日志')  # 括号内为工作表表名
    
    
    • 添加工作表样式

    样式有很多属性,更多具体样式请参考官方文档

    bold = f.add_format({
            'bold':  True,  # 字体加粗
            'border': 1,  # 单元格边框宽度
            'align': 'left',  # 水平对齐方式
            'valign': 'vcenter',  # 垂直对齐方式
            'fg_color': '#F4B084',  # 单元格背景颜色
            'text_wrap': True,  # 是否自动换行
        })
    
    
    • 写入单个单元格数据
    //row:行, col:列, data:要写入的数据, bold:单元格的样式
    worksheet1.write(row, col, data, bold)
    
    
    • 写入一整行,一整列
    // A1:从A1单元格开始插入数据,按行插入, data:要写入的数据(格式为一个列表), bold:单元格的样式
    worksheet1.write_row(“A1”,data,bold)
    
    // A1:从A1单元格开始插入数据,按列插入, data:要写入的数据(格式为一个列表), bold:单元格的样式
    worksheet1.write_column(“A1”,data,bold)
    
    
    • 插入图片
    // 第一个参数是插入的起始单元格,第二个参数是图片你文件的绝对路径
    worksheet1.insert_image('A1','f:\1.jpg')
    
    
    • 写入超链接
    worksheet1.write_url(row, col, "internal:%s!A1" % ("要关联的工作表表名"), string="超链接显示的名字")
    
    
    • 插入图表
    workbook.add_chartsheet(type="")
    
    参数中的type指的是图表类型,图表类型示例如下:
    [area:面积图,bar:条形图,column:直方图,doughnut:环状图,line:折线图,pie:饼状图,scatter:散点图,radar:雷达图,stock:箱线图]
    
    
    • 获得当前excel文件的所有工作表
    workbook.worksheets()
    
    

    workbook.worksheets()用于获得当前工作簿中的所有工作表,这个函数的存在便利了对于工作表的循环操作,如果你想在当前工作簿的所有工作表的A1单元格中输入一个字符创‘Hello xlsxwriter’,那么这个命令就派上用场了。

    • 关闭excel文件
    workbook.close()
    
    

    这个命令是使用xlsxwriter操作Excel的最后一条命令,一定要记得关闭文件。



    作者:socket_e30c
    链接:https://www.jianshu.com/p/187e6b86e1d9
    来源:简书
    著作权归作者所有。商业转载请联系作者获得授权,非商业转载请注明出处。
  • 相关阅读:
    6.BLE---数据传输
    5.BLE---报文
    4.BLE---广播信道防冲突与数据信道选择
    3.BLE---信道与功率
    Ubuntu 安装exe 软件
    Zephyr ubuntu 环境搭建
    ES6语法(一)let 和 const 命令
    Vue(二十三)vuex + axios + 缓存 运用 (以登陆功能为例)
    Vue(二十二)vuex小案例(官网计数案例整合)
    Vue(二十一)使用express模拟接口数据
  • 原文地址:https://www.cnblogs.com/peak911/p/13491126.html
Copyright © 2011-2022 走看看