python调用xlsxwriter创建xlsx的方法
详细的官方文档可见:http://xlsxwriter.readthedocs.io/
通过pip安装xlsxwriter
pip install xlsxwriter
下面进行基本的操作演示:
1. 首先创建一个excel的文档
workbook = xlsxwriter.Workbook(dir)
2. 在文档中创建表
table_name = 'sheet1' worksheet = workbook.add_worksheet(table_name) # 创建一个表名为‘sheet1'的表,并返回这个表对象
3. 创建表后,就可以在表格上面进行写入操作
worksheet.write_column('A1', 5) # 在A1单元格写入数字5
有时候,我们想修改输入内容的格式,例如设置字体颜色加粗,斜体,日期格式等,这时候,就可以通过使用xlsxwriter提供的格式类。
具体可见:http://xlsxwriter.readthedocs.io/format.html
下面以写入一个粗体的红色的日期类为例
import datetime # 需要先把字符串格式化成日期 date_time = datetime.datetime.strptime('2017-1-25', '%Y-%m-%d') # 定义一个格式类,粗体的红色的日期 date_format = workbook.add_format({'bold': True, 'font_color': 'red', 'num_format': 'yyyy-mm-dd'}) # 写入该格式类 worksheet.write_column('A2', date_time, date_format)
4. xlsxwriter支持很多图表格式的插入
具体可以参见:http://xlsxwriter.readthedocs.io/chart.html
这里摘抄一段图标类型的介绍:
excel定义的图分两级类别描述,第一级分别有九大类,如下所示
area: 面积图
bar: 转置直方图
column: 柱状图
line: 直线图
pie: 饼状图
doughnut: 环形图
scatter: 散点图
stock: 股票趋势图
radar: 雷达图
第二级则是描述是否有连线,是否有平滑曲线等细节调整。
area stacked percent_stacked bar stacked percent_stacked column stacked percent_stacked scatter straight_with_markers straight smooth_with_markers smooth radar with_markers filled
下面举例绘制一个散点图。
chart1 = workbook.add_chart({'type': 'scatter', 'subtype': 'straight'}) chart1.set_title({'name': '图1'}) chart1.add_series({ 'name': '系列1', # 集合范围 'categories': '=sheet1!$A$1:$A$89', # 数值范围 'values': '=sheet1!$B$1:$B$89'), # 是否连线 'line': {'none': True}, # 默认图格式 'marker': {'type': 'automatic'}, }) # 设置y轴的范围 chart1.set_y_axis({'max': 1.1, 'min': 0}) chart1.set_size({'x_scale': 2, 'y_scale': 2}) # 把图例插入到表中的C2位置,并且设置横轴偏移量为25,纵轴偏移量为10 worksheet.insert_chart('C2', chart1, {'x_offset': 25, 'y_offset': 10})
以上这篇
详细的官方文档可见:http://xlsxwriter.readthedocs.io/
通过pip安装xlsxwriter
pip install xlsxwriter
下面进行基本的操作演示:
1. 首先创建一个excel的文档
workbook = xlsxwriter.Workbook(dir)
2. 在文档中创建表
table_name = 'sheet1' worksheet = workbook.add_worksheet(table_name) # 创建一个表名为‘sheet1'的表,并返回这个表对象
3. 创建表后,就可以在表格上面进行写入操作
worksheet.write_column('A1', 5) # 在A1单元格写入数字5
有时候,我们想修改输入内容的格式,例如设置字体颜色加粗,斜体,日期格式等,这时候,就可以通过使用xlsxwriter提供的格式类。
具体可见:http://xlsxwriter.readthedocs.io/format.html
下面以写入一个粗体的红色的日期类为例
import datetime # 需要先把字符串格式化成日期 date_time = datetime.datetime.strptime('2017-1-25', '%Y-%m-%d') # 定义一个格式类,粗体的红色的日期 date_format = workbook.add_format({'bold': True, 'font_color': 'red', 'num_format': 'yyyy-mm-dd'}) # 写入该格式类 worksheet.write_column('A2', date_time, date_format)
4. xlsxwriter支持很多图表格式的插入
具体可以参见:http://xlsxwriter.readthedocs.io/chart.html
这里摘抄一段图标类型的介绍:
excel定义的图分两级类别描述,第一级分别有九大类,如下所示
area: 面积图
bar: 转置直方图
column: 柱状图
line: 直线图
pie: 饼状图
doughnut: 环形图
scatter: 散点图
stock: 股票趋势图
radar: 雷达图
第二级则是描述是否有连线,是否有平滑曲线等细节调整。
area stacked percent_stacked bar stacked percent_stacked column stacked percent_stacked scatter straight_with_markers straight smooth_with_markers smooth radar with_markers filled
下面举例绘制一个散点图。
chart1 = workbook.add_chart({'type': 'scatter', 'subtype': 'straight'}) chart1.set_title({'name': '图1'}) chart1.add_series({ 'name': '系列1', # 集合范围 'categories': '=sheet1!$A$1:$A$89', # 数值范围 'values': '=sheet1!$B$1:$B$89'), # 是否连线 'line': {'none': True}, # 默认图格式 'marker': {'type': 'automatic'}, }) # 设置y轴的范围 chart1.set_y_axis({'max': 1.1, 'min': 0}) chart1.set_size({'x_scale': 2, 'y_scale': 2}) # 把图例插入到表中的C2位置,并且设置横轴偏移量为25,纵轴偏移量为10 worksheet.insert_chart('C2', chart1, {'x_offset': 25, 'y_offset': 10})