zoukankan      html  css  js  c++  java
  • 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()
  • 相关阅读:
    数字游戏(划分型)
    统计单词个数(划分型)
    数的划分(划分型)
    乘积最大(划分型)
    codevs 3152 装箱问题3
    洛谷 p2530 化工场装箱员(资源型)
    金明的预算方案(分组背包)
    洛谷 p2066 机器分配(资源型)
    上升子序列问题
    网络流
  • 原文地址:https://www.cnblogs.com/workingdiary/p/11351867.html
Copyright © 2011-2022 走看看