您现在的位置是:网站首页>>Python>>python

python 使用xlsxwriter包实现excel处理

发布时间:2020-04-29 10:36:42作者:wangjian浏览量:88点赞量:1

    在python中处理excel十分的方便,前面我们已经了解了一种处理excel的python包openpyxl了,具体了解详见:https://www.wj0511.com/site/detail.html?id=443

    这里我们再来简单的了解下另一种处理excel文件十分好用的包xlsxwriter

    文档地址:https://xlsxwriter.readthedocs.io/contents.html

    一:安装xlsxwriter

    pip install xlsxwriter

    二:xlsxwriter包的简单使用

    如:

    # -*- coding: utf-8 -*-
    import xlsxwriter
    data = [
        ['年度', '数量', '剩余数量'],
        ['2016', '100', '30'],
        ['2017', '150', '50'],
        ['2018', '170', '40'],
        ['2019', '190', '15'],
        ['2020', '200', '100'],
    ]
    wb  = xlsxwriter.Workbook('test.xlsx') #创建一个新的excel表格
    sheet = wb.add_worksheet('sheet1') #创建一个新的sheet
    # 将data数组的数据插入到excel表格中
    for row,item in enumerate(data):
        for colume, value in enumerate(item):
            sheet.write(row, colume, value)
    wb.close()

    如上就可以将data数组的数据插入到excel表格中,根据上面的代码生成的test.xlsx文件内容如下:

    image.png

    我们还可以给excel表格设置样式,给表格设置样式使用到了add_format方法,如在插入excel表格数据之前加上:

    # 增加样式配置
    bold = wb.add_format({
        'bold': True, #字体加粗
        'border': 1,  # 单元格边框宽度
        'align': 'left',  # 水平对齐方式
        'valign': 'vcenter',  # 垂直对齐方式
        'fg_color': 'black',  # 单元格背景颜色
        'text_wrap': True,  # 是否自动换行
        'font_color': 'red', #文字颜色
    })

    然后在执行sheet.write函数的第四个参数加上bold参数即可,如:

    sheet.write(row, colume, value, bold)

    生成的excel内容如下:

    image.png

    三:按行插入数据

    xlsxwriter包中我们可以按照行进行插入数据,具体使用的方法为:

    sheet.write_row()

    简单实例如下:

    # -*- coding: utf-8 -*-
    import xlsxwriter
    data1 = ['年份','数量','剩余数量']
    data2 = ['2013','100','50']
    wb  = xlsxwriter.Workbook('test.xlsx')
    sheet = wb.add_worksheet('sheet1')
    sheet.write_row('A1',data1)
    sheet.write_row('A2',data2)
    wb.close()

    根据如上生成的excel内容如下:

    image.png

    四:按列插入数据

    xlsxwriter包中我们可以按照列进行插入数据,具体使用的方法为:

    sheet.write_column()

    简单实例如下:

    # -*- coding: utf-8 -*-
    import xlsxwriter
    data1 = ['年份','2013','2014']
    data2 = ['数量','100','200']
    wb  = xlsxwriter.Workbook('test.xlsx')
    sheet = wb.add_worksheet()
    sheet.write_column('A1',data1)
    sheet.write_column('B1',data2)
    wb.close()

    根据如上生成的excel内容如下:

    image.png

    五:给excel添加图表

    xlsxwriter包中我们可以给excel插入图表,简单梳理如下:

    # -*- coding: utf-8 -*-
    import xlsxwriter
    wb  = xlsxwriter.Workbook('test.xlsx') #创建新的excel
    sheet = wb.add_worksheet('sheet1') #创建新的sheet
    #向excel文件中插入数据
    data1 = ['年份', '2013', '2014', '2015', '2016', '2017', '2018', '2019', '2020']
    sheet.write_column('A1',data1)
    data2 = ['数量', 100, 200, 500, 400, 500, 600, 150, 300]
    sheet.write_column('B1',data2)
    #设置图表类型 ,type常见参数有:area:面积图,bar:条形图,column:直方图,doughnut:环状图,line:折线图,pie:饼状图,scatter:散点图,radar:雷达图,stock:箱线图
    chart = wb.add_chart({'type': 'line'})
    #给图表设置信息
    chart.add_series(
        {
            'name':'发展趋势', #设置折线名称
            'categories':'=sheet1!$A$2:$A$9',#设置x轴信息
            'values':'=sheet1!$B$2:$B$9', #设置y轴信息
            'line':{'color':'red'} #给折线设置样式
        }
    )
    chart.set_title({'name':'测试'})  #设置表头标题
    chart.set_x_axis({'name':"x轴"}) #设置x轴名称
    chart.set_y_axis({'name':'y轴'}) #设置y轴名称
    chart.set_style(1)
    sheet.insert_chart('A10',chart,{'x_offset':25,'y_offset':10})   #放置图表位置
    wb.close()

    根据如上excel内容如下:

    image.png

    以上就是xlsxwriter包的常见用法,具体教程我们可以参考xlsxwriter包的官方文档

1 +1