Python使用xlsxwriter库操作Excel:从安装到高级应用

Ruby
Ruby
发布时间:2026-10-14 | 4人浏览过
原创

本文详解Python中xlsxwriter库的安装与核心用法。涵盖Workbook创建工作簿、add_worksheet添加工作表、set_row/set_column调整行列尺寸,以及write方法写入各类数据。同时介绍如何自定义单元格样式(字体、对齐、换行)及通过insert_image插入PNG/JPEG等格式图片,提供完整代码示例。

本文旨在介绍如何利用Python中的xlsxwriter包进行Excel文件的操作,具体内容如下。

环境准备:安装xlsxwriter

首先需要完成xlsxwriter包的安装。


pip install xlsxwriter

核心概念:Workbook与工作表创建

接下来了解Workbook类的基本概念。

演示如何创建一个Excel文件。


filename = "test.xlsx"
# Workbook代表整个电子表格文件,并且存储在磁盘上。filename为字符串类型,表示创建的excel文件存储路径;
wb = xlsxwriter.Workbook(filename)

介绍如何创建Sheet表,主要使用add_worksheet方法。

add_worksheet([sheetname])方法用于添加一个新的工作表,其中sheetname参数指定工作表名称,默认值为sheet1。例如:


ws = wb.add_worksheet() #创建一个sheet1的表
ws2 = wb.add_worksheet("test") #创建一个test的表

布局调整:设置行列尺寸

设置Sheet表中单元格的行高和列宽。

set_row(row, height)方法用于设定特定行单元格的行高。参数row指定行位置,起始下标为0;height为float类型,设定行高,单位为像素。set_column(first_col, last_col, width)方法用于设置一列或多列单元格的列宽。参数first_col为整型,指定开始列位置,起始下标为0;last_col为整型,指定结束列位置,起始下标为0;width为float类型,设置列宽。此外,还可以使用set_column("first_col:last_col", width)方法,其中first_col和last_col用英文字母表示列名,起始为A。


# 设置sheet表单元格列宽
ws.set_column(0,3,40) #设定第1到4列的列宽为40
ws.set_column("A:A", 40) #设定A列列宽为40
ws.set_column("B:D", 15) #设定B、C、D三列的列宽为15
ws.set_column("E:F", 50) #设定E、F列的列宽为50

#设置sheet表单元格行高
ws.set_row(0,40) #设置第一行的高度为40

数据写入:使用write方法

向单元格中写入内容,主要使用write方法。

write(row, col, data, cell_format)方法用于将普通数据写入单元格,参数包括行标、列标、内容以及单元格格式。


# 为了简化不同数据类型的写入过程,write方法已作为其他更加具体的数据类型方法的别名,如:
write.string():写入字符串类型数据
wirte_number():写入数字型数据
write_blank():写入空类型数据
write_formula():写入公式型数据
write_datetime():写入日期型数据
wirte_boolean():写入逻辑型数据
write_url():写入超链接型数据

# 示例:
ws.write(1,1,"python操作excel") #在单元格1行1列中写入:“python操作excel”

样式定制:单元格格式设置

介绍单元格常用的格式设置选项。


#设定整个sheet表的单元格的格式

property = {
      'font_size': 11,#字体大小
      'bold':True, #是否加粗
      'align': 'left',#水平对齐方式
      'valign': 'vcenter',#垂直对齐方式
      'font_name': u'微软雅黑',
      'text_wrap': False, # 是否自动换行
      }
cell_format = wb.add_format(property)

#在向单元格中写入内容时,加上单元格样式
ws.write(row,col,data,cell_format)

多媒体插入:添加图片

演示如何在单元格中插入图片。

insert_image(row, col, image[, options])方法用于将图片插入到指定的单元格,支持PNG、JPEG、BMP等多种格式。参数row为行坐标,起始索引值为0;col为列坐标,起始索引值为0;image为string类型,表示图片路径;options为dict类型,是可选参数,用于指定图片位置,如URL等信息。


# 图片格式
img_format={
      'x_offset': 8,#水平偏移
      'y_offset': 14,#垂直偏移
      'x_scale': 0.18,#水平缩放
      'y_scale': 0.18,#垂直缩放
      'url': None,
      'tip': None,
      'image_data': None,
      'positioning': None
      }
# 示例:
ws.insert_image(1,1,'1.png',img_format)

以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持本站。

本站声明

本文内容仅供参考,不代表本站观点。转载或引用请注明出处。如发现内容问题,请通过联系我们页面反馈。

Python 相关产品和应用

全部下载

专题列表