xlsxwriter基本操作 您所在的位置:网站首页 xlsxwriter文档 xlsxwriter基本操作

xlsxwriter基本操作

#xlsxwriter基本操作| 来源: 网络整理| 查看: 265

一、安装

pip install xlsxwriter

二、创建工作簿与工作表 1、创建工作簿对象 (1) 直接创建工作簿

语法: xlsxwriter.Workbook(filename=None, options=None) 功能描述: 直接创建工作簿 参数说明: filename:文件名

(2)创建 Pandas Excel 编写器 pandas.ExcelWriter('xxx.xlsx', engine='xlsxwriter').book

使用xlsxwriter引擎进行Excel文件的创建,然后使用ExcelWriter类创建了一个writer对象

或者

with pd.ExcelWriter('xxx.xlsx', engine='xlsxwriter') as writer: df1.to_excel(writer, sheet_name='Students') writer.book 2、创建工作表对象 (1)直接获取 工作簿对象.sheets[索引 / sheet名] (2)新增工作表

语法: 工作簿对象.add_worksheet(name="Sheet1", worksheet_class=None) 功能描述: 新增工作表 参数说明: name:工作表名

3、关闭工作簿

语法:工作簿对象.close() 功能描述: 关闭并保存工作簿

三、数据写入 1、单个数据写入数据

语法: 工作表对象.write(row, col[,data,cell_format]) | 工作表对象.write("A3"[,data,cell_format]) 功能描述: 向指定单元格写入数据 参数说明: row:行数,从0开始索引 col:列数,从0开始索引 data:写入的数据 cell_format:自定义样式对象

2、序列数据写入数据

语法: 工作表对象.write_row(row, col, data, cell_format=None) | 工作表对象.write_column(row, col, data, cell_format=None) 功能描述: 向指定行列写入序列数据 参数说明: row:行数,从0开始索引 col:列数,从0开始索引 data:写入的数据 cell_format:自定义样式对象

四、表格样式 1、设置行高列宽 (1)设置行高

语法: 工作表对象.set_row(row, height=None, cell_format=None, options=None) 功能描述: 设置指定行的行高 参数说明: row:行数,0开始索引 height:行高值 cell_format:自定义样式对象

(2)设置列宽

语法: 工作表对象.set_column(first_col, last_col, width=None, cell_format=None, options=None) | 工作表对象.set_column("列范围",宽度[,自定义格式]) 功能描述: 设置指定范围的列宽 参数说明: first_col:第一列 last_col:最后一列 width:列宽 cell_format:自定义样式对象

2、合并单元格

语法: 工作表对象.merge_range(first_row, first_col, last_row, last_col, data, cell_format=None) | 工作表对象.merge_range('合并单元格范围'[,填入内容,自定义样式对象]) 功能描述: 合并单元格并写入内容 参数说明: first_row:单元格范围的第一行(0开始索引) first_col:单元格范围的第一列 last_row:单元格范围的最后一行(0开始索引) last_col:单元格范围的最后一列 data:单元格数据 cell_format:单元格格式对象

3、自定义样式对象

语法: 工作簿对象.add_format(properties=None) 功能描述: 创建样式格式对象 参数说明: properties:格式属性,字典类型

样式属性名属性值描述说明font_color / color#xxxxxx字体颜色boldTrue / False字体粗细font_size数值字体大小font_name字体bg_color#xxxxxx单元格背景色alignleft / right / center水平对齐方式valignvcenter垂直对齐方式top数值上边框left数值左边框right数值右边框bottom数值下边框top_color#xxxxxx上边框颜色left_color#xxxxxx左边框颜色buottom_color#xxxxxx上边框颜色right_color#xxxxxx右边框颜色 3、网格线

语法: 工作表对象.hide_gridlines(option=1) 功能描述: 设置打印或屏幕的网格线隐藏属性 参数说明: 0:不隐藏网格线 1:仅隐藏打印的网格线 2:隐藏屏幕和打印的网格线

五、图表 1、创建图表 (1)add_chart

语法: 工作簿对象.add_chart(option) 功能描述: 创建一个图表对象,在原表格上展示 参数说明: option:图表类型和子类型选项,字典类型。{"type": "bar" | "column" | "line" |"pie" | "doughnut" | "scatter" | "stock" | "radar" }

bar:条形图 column:柱状图 line:折线图 pie:饼图 doughnut:圆环图 scatter:散点图 stock:股价图 radar:雷达图

(2)add_chartsheet

语法:工作簿对象.add_chartsheet(name=None, chartsheet_class=None) 功能描述: 创建一个图表对象,在新表格上展示 参数说明: name:新表格的名称

2、添加数据

语法: 图表对象.add_series(options=None) 功能描述: 给图表对象添加数据 参数说明: options:图表系列选项的字典

name:数据系列的名称 | 引用单元格值 categories:图表类别标签 values:该数据系列的值 values:选项为必须,其他选项为可选 overlap:两个数据系列之间重叠的距离,默认值为0 gap:在条形图/柱形图中数据系列之间的间隔,默认值为150 data_labels:添加数据标签( {'value':True,'font':{'name':'微软雅黑','size':9}})

3、设置图表大小

语法: 图表对象.set_size(options=None) 功能描述: 参数说明:

4、设置X轴

语法: 图表对象.set_y_axis(options) 功能描述: 参数说明:

5、设置Y轴

语法: 图表对象.set_x_axis(options) 功能描述: 参数说明:

6、VBA程序 1、添加VBA程序

语法: 工作簿对象.add_vba_project(vba_project, is_stream=False) 功能描述: 将vba程序二进制文件添加到Excel工作簿中,无返回 参数说明: vba_project:vba程序二进制文件名。 is_stream:vba程序是内存中的字节流。

2、设置vab名称

语法: 工作簿对象.set_vba_name( name=None) 功能描述: 设置工作簿的VBA名称。默认情况下,工作簿在VBA中称为ThisWorkbook。 参数说明: name: VBA名称

实战代码:

def to_xls(data,file_name,key1) : data["column_name"]=range(1,len(data)+1) workbook = xlsxwriter.Workbook(file_name) # 创建excel表格 worksheet = workbook.add_worksheet() title_format_first= workbook.add_format({'font_color': '#ffffff','bg_color':'#1C981C','font_size':18,'bold': True,'font_name':'Microsoft Yahei','align': 'center','valign': 'vcenter'}) worksheet.set_row(0,30) #设置行高 worksheerge_range('A1:F1','xxxx', title_format_first) # 合并单元格写入大标题 worksheet.set_column("B:B",30) # 设置列宽 worksheet.set_column("C:C",15) worksheet.set_column("D:D",24) worksheet.set_column("E:E",15) worksheet.set_column("F:F",25) worksheet.set_column("G:G",15) worksheet.set_column("H:J",25) content="xxxx"+key1+"xxx数据" worksheerge_range("G1:J1",content, title_format_first) # 合并单元格写入大标题 title_format_second=workbook.add_format({'font_color': '#ffffff','bg_color':'#1C981C','font_size':12,'bold': True,'font_name':'Microsoft Yahei','top':1,'bottom':1,'right':1,'top_color':'#1C981C','bottom_color':'#1C981C','right_color':'#ffffff','align': 'center','valign': 'vcenter'}) #worksheet.set_row(1,20,title_format_second) lie=["A","B","C","D","E","F","G","H","I","J"] for i in range(len(lie)): worksheet.write(lie[i]+"2", data.columns[i],title_format_second) # 写入小标题 data_format_odd=workbook.add_format({'bg_color':'#97C890','font_size':10,'top':1,'bottom':1,'right':1,'top_color':'#1C981C','bottom_color':'#1C981C','right_color':'#ffffff','align': 'center','valign': 'vcenter'}) data_format_even=workbook.add_format({'font_size':10,'top':1,'bottom':1,'right':1,'top_color':'#1C981C','bottom_color':'#1C981C','right_color':'#ffffff','align': 'center','valign': 'vcenter'}) # 写入主体数据 data_list=data.fillna(value="").values # 将传入的dataframe数据转换为列表 for i in range(len(data_list)): for j in range(len(data_list[0])): if i%2==0: # 写入数据,并通过判断条件控制奇偶数的格式样式 worksheet.write(lie[j]+str(i+3), data_list[i][j],data_format_even) else: worksheet.write(lie[j]+str(i+3), data_list[i][j],data_format_odd) workbook.close()

效果图如下: 在这里插入图片描述



【本文地址】

公司简介

联系我们

今日新闻

    推荐新闻

    专题文章
      CopyRight 2018-2019 实验室设备网 版权所有