Python xlsxwriter library to generate a chart application example, pythonxlsxwriter
There may not be many people using xlsxwriter, but after using it, you will feel that its function makes you sigh, except that you can generate the excel as required.
You can also add various images, such as bar charts, pie charts, and line charts.
Create an xlsx file and add data
Official documents: http://xlsxwriter.readthedocs.org/
Xlsxwriter can operate xls files.
Note: xlsxwriter can only create new files, but cannot modify the original files. If the new file is created with the same name as the original file, the original file will be overwritten.
Install sudo pip install XlsxWriter in Linux
Install pip install XlsxWriter in Windows
Please refer to the self-generated:
This section describes the calculation of Data formulas, the insertion of image links, and the generated charts. If you need other functions, you can continue to refer to the library documentation.
Below I will post the source code. I hope you can use it directly if you encounter similar situations at work.
#! /Usr/bin/env python #-*-coding: UTF-8-*-# Author: Eric. yueimport into randomfrom datetime import dateimport collectionsdef xlwt_chart (xl_obj, table): # generate a bar chart column_chart = xl_obj.add_chart ({'type': 'column '}) column_chart.add_series ({'name ': '= sheet1! $ D $1 ', 'category':' = sheet1! $ D $2: $ D $ 7', 'values': '= sheet1! $ E $2: $ E $ 7'}) table. insert_chart ('g2 ', column_chart) # generate the pie chart column_chart2 = xl_obj.add_chart ({'type': 'pie'}) column_chart2.add_series ({'name': '= sheet1! $ D $1 ', 'category':' = sheet1! $ D $2: $ D $ 7', 'values': '= sheet1! $ E $2: $ E $ 7'}) table. insert_chart ('g20', column_chart2) def xlwt_run (): data_base = ['0-50', '50-60', '60-70', '70-80 ', '80-90', '90-100 '] # generate an ordered dictionary chart_dict = collections. orderedDict. fromkeys (data_base, 0) xl_obj = xlsxwriter.Workbook('chart.xlsx ') table = xl_obj.add_worksheet ('sheet1') table. write_string (0, 0, u'name') table. write_string (0, 1, u'score ') table. write_string (, u'date') table. merge_range ('d1: E1 ', u'score distribution') table. set_column ('C: e', 15) # define the format date_format = xl_obj.add_format ({'num _ format': 'yyyy-mm-dd '}) color_format = xl_obj.add_format ({'color': 'red'}) font_format = xl_obj.add_format ({'font _ color': 'green', 'bold ': True }) mm = 1 for I in xrange (1, 40): name = 'name _ % d' % I score = random. randint (30,100) if score <= 50: chart_dict ['0-50'] + = 1 elif score> 50 and score <= 60: chart_dict ['50-60'] + = 1 elif score> 60 and score <= 70: chart_dict ['60-70'] + = 1 elif score> 70 and score <= 80: chart_dict ['70-80'] + = 1 elif score> 80 and score <= 90: chart_dict ['80-90'] + = 1 else: chart_dict ['90-100 '] + = 1 if score> 60: table. write_string (I, 0, name) table. write_number (I, 1, score) else: table. write_string (I, 0, name, color_format) table. write_number (I, 1, score, color_format) table. write_datetime (I, 2, date. today (), date_format) mm = mm + 1 # generate chart data row = 1 for k, v in chart_dict.items (): table. write_string (row, 3, k, font_format) table. write_number (row, 4, v, font_format) row = row + 1 xlwt_chart (xl_obj, table) # use the formula table. write_formula (mm, 1, '= AVERAGE (B2: B40)') # insert an image table with a link. insert_image ('d20', R'/home/mywork/pythonchina/cto51_log/bd_logo12.png ', {'url': 'https: // www.baidu.com '}) # Close excel handle xl_obj.close () if _ name _ = '_ main _': xlwt_run ()
Class writing is not used, just impromptu.
The above is all the content of this article. I hope it will be helpful for your learning and support for helping customers.