• python-excel操作


    应用xlsxwriter模块,导入测试数据到excel进行绘图并导出

    1. 引用:

    import xlsxwriter

    2. 获取workbook:

    workbook = xlsxwriter.Workbook(excel_path)

    3. 创建worksheet:

    worksheet1 = workbook.add_worksheet("sheet1")

    4. 写入行:

    headings = ['a', 'b', 'c']
    worksheet1.write_row('A1', headings) #从A1单元格开始

    5. 写入列:

    data1= ['1','2','3']
    worksheet1.write_column('A2', data1) #从A2单元格开始

    6. 创建折线图:

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

    7. 为折线图指定数据:

    values = '=Request!$A$1:$A$' + str(len(data1)) #指定数据区域,此处为从A1开始到data1长度
    chart.add_series({'name': 'value', 'values': values}) #指定折线的名称和数据

    8. 指定折线图名称:

    chart.set_title({'name': 'Request Sequence'})

    9. 画出折线图:

    worksheet1.insert_chart('C1', chart) #从C1单元格开始画图

    10. 关闭workbook:

    workbook.close()

    11. 散点图:

        chart = workbook.add_chart({'type': 'scatter'})
    
        # Set data scope
        data_length = len(data1) + 1
        values = '=sheet1!$B$2:$B$' + str(data_length)
        categories = '=sheet1!$A$2:$A$' + str(data_length)
    
        # Add series
        chart.add_series({'name': 'data1', 'values': values, 'categories': categories})
    
        # Set chart title and axis labels
        chart.set_title({'name': 'scatter_chart'})
        chart.set_x_axis({'name': 'x'})
        chart.set_y_axis({'name': 'y'})
    
        # Insert chart
        worksheet1.insert_chart('G1', chart, {'x_scale': 2, 'y_scale': 2}) #x_scale和y_scale用来缩放图形,这里为2倍

    12. 使用win32com.client中的Dispatch导出图:

    from win32com.client import Dispatch
    
    def export_chart(workbook, worksheet, image_path):
        image_type = 'jpg'
    
        excel = Dispatch("Excel.Application")
        excel.Visible = True
    
        wb = excel.Workbooks.Open(workbook)
        sheet = wb.Worksheets(worksheet)
    
        for chart in sheet.ChartObjects():
            chart.Chart.Export(image_path, image_type)
    
        wb.Close(False) #如果上面有错误,excel就会保持打开状态,不知道如何解决。
        excel.Quit()
  • 相关阅读:
    Python 从零学起(纯基础) 笔记 之 collection系列
    ARM学习 之 如何在向内核写入系统调用
    idea的git使用案例
    idea使用git的pull命令报错1
    String、StringBuilder以及StringBuffer
    HashMap实现原理及源码分析
    logback使用注意点1
    创建zookeeper集群
    disconf安装问题
    linux更换jdk版本
  • 原文地址:https://www.cnblogs.com/workingdiary/p/11351867.html
Copyright © 2020-2023  润新知