• 学习-xlsxwriter模块


    Xlsx是python用来构造xlsx文件的模块,可以向excel2007+中写text,numbers,formulas 公式以及hyperlinks超链接。

    可以完成xlsx文件的自动化构造,包括:

    合并单元格,制作excel图表等功能:

    技术分享图片

    import xlsxwriter
    
    
    # Create an new Excel file and add a worksheet.  
    workbook = xlsxwriter.Workbook('demo.xlsx')     #创建工作簿
    worksheet = workbook.add_worksheet()            #创建工作表
    
    # Widen the first column to make the text clearer. 
    worksheet.set_column('A:A', 20)       #设置一列或者多列单元属性
    
    # Add a bold format to use to highlight cells.
    bold = workbook.add_format({'bold': True})    #在工作表中创建一个新的格式对象来格式化单元格,实现加粗
    
    # Write some simple text.
    worksheet.write('A1', 'Hello')       #工总表写入简单文本
    
    # Text with formatting.
    worksheet.write('A2', 'World', bold)     #工作表写入带有格式的文本,加粗
    
    # Write some numbers, with row/column notation.  #按照坐标写入
    worksheet.write(2, 0, 123)     
    worksheet.write(3, 0, 123.456)
    
    # Insert an image.
    worksheet.insert_image('B5', 'logo.png')   #插入图片
    
    workbook.close()    #关闭工作薄
    

     安装方式:pip install XlsxWriter

    方法详细解释:

    1.workbook类

    定义:Workbook(filename[,options])

    该类创建一个XlsxWriter的Workbook对象。Workbook代表整个电子表格文件,并且存储在磁盘上。filename为字符串类型,表示创建的excel文件存储路径;

    options:为dict类型,是可选参数,一般作为初始化工作表内容格式

    add_worksheet

    add_worksheet([sheetname])方法,用于添加一个新的工作表,sheetname为工作表名称,默认是sheet1,例如:

        worksheet1 = workbook.add_worksheet()   #sheet1
        worksheet2 = workbook.add_worksheet('test')     #test
        worksheet3 = workbook.add_worksheet('data')     #data
        worksheet4 = workbook.add_worksheet()   #sheet4

    add_format

    add_format([properties])方法,用于在工作表中创建一个新的格式对象来格式化单元格

    properties:为dict类型,为指定一个格式属性的字典

    例如设置一个加粗的格式对象如下:

        bold = workbook.add_format({'bold': True})
        等价的语句如下:
        bold = workbook.add_format()
        bold.set_bold()

     

    add_chart

    add_chart(options)方法,用于在工作表中创建一个图表对象,内部是通过insert_chart()方法来实现的,参数为dict类型,是为图标指定一个字典属性。

    例如设置一个线条行的图表对象,代码如下:

      chart = workbook.add_chart({'type': 'line'})1

    close

    close()方法,作用是关闭工作表文件,如:

    workbook.close()

    2.Worksheet类

    代表一个excel工作表,是比较核心的一个类。Worksheet对象不能直接实例化,而是通过Workbook对象调用add_worksheet()方法来创建,常见的方法如下:

    write

    write(row, col, *args)方法:是用来将普通数据写入单元格中。

    row:行坐标;
    col:列坐标; 坐标索引起始值为0
    *args:无名字参数为数据内容,可为数字,公式,字符串或格式对象

    为了简化不同数据类型的写入过程,write方法已作为其他更加具体的数据类型方法的别名,如:

      write.string():写入字符串类型数据 
      wirte_number():写入数字型数据 
      write_blank():写入空类型数据  
     write_formula():写入公式型数据 
     write_datetime():写入日期型数据  
     wirte_boolean():写入逻辑型数据  
     write_url():写入超链接型数据

    set_row

    set_row(row, height, cell_format, options)方法,用于设定行单元格的属性。

    row:指定行位置,起始下标为0;
    height:为float类型,设定行高,单位像素;
    cell_format:format类型,指定对象格式;
    options,字典类型,设置行hidden(隐藏)、level(组合分级)、collpsed(折叠)

    示例如下:

      worksheet2.write('A1', 'hello')
      bold = workbook.add_format({'bold': True})  # 设定A1行高40,加粗
      worksheet2.set_row(0, 40, bold)  # 隐藏第二行
      worksheet2.set_row(1, None, None, {'hidden': True})

    set_column

    set_column(first_col, last_col, width, cell_format, options)方法,用于设置一列或多列单元格的属性

    first_col:整型,指定开始列位置,起始下标为0;
    last_col:整型,指定结束列位置,起始下标为0;
    width:float类型,设置列宽;
    cell_format:format类型,指定格式对象;
    options:dict类型,设置hidden(隐藏)、level(组合分级)、collpsed(折叠);

     

    示例如下:

      worksheet2.write('A1', 'hello')
      worksheet2.write('B1', 'world')
      bold = workbook.add_format({'bold': True})  # 设定列A到B单元格宽度10像素,加粗
      worksheet2.set_column(0, 1, 10, bold)  # 设置C到D单元格宽度20像素
      worksheet2.set_column('C:D', 20)
      隐藏E到G单元格
      worksheet2.set_column('E:G', None, None, {'hidden': 1})

    insert_image

    insert_image(row, col, image[, options])方法,用于插入图片到指定的单元格,支持PNG,JPEG,BMP等多种格式。

    row:行坐标,起始索引值为0;
    col:列坐标,起始索引值为0;
    image:string类型,是图片路径;
    options:dict类型,是可选参数,用于指定图片位置,如URL等信息;

    示例如下:

      # 在B5单元格插入python-logo.png图片,超链接为http://python.org
      worksheet1.insert_image('B5', 'img/python-logo.png', {'url': 'http://python.org'})12

    chart类

    chart类实图表组件,支持包括面积、条形图、柱状图、折线图、散点图等,一个图表对象是通过Workbook的add_chart方法创建,通过{type, ‘图表类型’}字典来制定图表类型,示例如下:

      # 创建一个column(柱形)图表
      chart = workbook.add_chart({type, 'column'})12

    常见的图表样式如下:

    area:面积样式的图表
    bar:条形图
    column:柱状图
    line:线条样式的图表
    pie:饼形图
    scatter:散点图
    stock:股票样式的图表
    radar:雷达样式的图表

    然后通过Worksheet的insert_chart()方法插入到指定位置,示例如下:

    几个常用方法如下:

    add_series

    chart.add_series(options)方法:用于添加一个数据系列的图表,参数options为字典类型,用于设置图表系列选项的字典,示例如下:

      chart.add_series({
          'categories': '=Sheet1!$A$1:$A$5',
          'values': '=Sheet1!$B$1:$B$5',
          'line': {'color': 'red'},
      })12345

    add_series的常用三个选项:

    categories:设置图表类别标签范围;
    values:设置图表数据范围;
    line:设置图表线条属性,包括宽度、颜色等;

    set_x_axis

    set_x_axis(options)方法,设置图表X轴选项,示例如下:

     chart.set_x_axis({      'name': 'x name',      'name_font': {'size': 14, 'bold': True}      'num_font': {'italic': True}
      })12345
      
      name:设置x轴名称;
    name_font:设置x轴字体;
    num_font:设置x轴数字字体属性;

    set_size

    set_size(options)方法,用于设置图表大小,示例如下:

      chart.set_size({'width': 720, 'height': 576})1
    width:设置宽度;
    height:设置高度;

    set_title

    set_title(options)方法,设置图表标题,示例如下:

    chart.set_title({'name': 'test'})1

    set_style

    set_style(style_id)方法,用于设置图表样式,style_id为不同数字代表不同样式,示例如下:

      chart.set_style(37)1

    set_table

    set_table(options)方法,设置x轴为数据表格式。示例如下:

      chart.set_table()
  • 相关阅读:
    统计一个字符串中字母、空格和数字的个数
    java 将一个数组中的值按逆序重新存放,例如,原来顺序为:9,5,7,4,8,要求改为:8,4,7, 5,9。
    java判断一个数是否为素数[转]
    Set集合
    List&ArrayList&LinkedList
    java_异常
    内部类&匿名内部类
    多态&抽象类&接口
    数组排序和字符串
    Java笔记_数据类型和运算符
  • 原文地址:https://www.cnblogs.com/Dev0ps/p/10423593.html
Copyright © 2020-2023  润新知