python操作Excel、Word、CSV
- Python 操作 Excel
- 常用工具
- xlrd & xlwt & xlutils 介绍
- 安装库
- 写入 Excel
- 读取 Excel
- 修改 excel
- 格式转换操作
- Python 操作 Word
- 安装 python-docx
- 写入 Word
- 标题
- 章节与段落
- 字体和引用
- 项目列表
- 图片和表格
- 读取 Word 文件
- Python 操作 CSV
- 简介
- CSV
- CSV 与 Excel
- 基本使用
- writer(csvfile, dialect=’excel’, **fmtparams)
- reader(csvfile, dialect=’excel’, **fmtparams)
- Sniffer 类
- sniff(sample, delimiters=None)
- has_header(sample)
- Reader 对象
- __next__()
- dialect
- line_num
- fieldnames
- Writer 对象
- writerow(row)
- writerows(rows)
- writeheader()
- dialect
- 写读追加状态
- 简介
作者:ywsydwsbn
字数:15745
日期:2020年8月11日22:22
Python 操作 Excel
常用工具
数据处理是 Python 的一大应用场景,而 Excel 又是当前最流行的数据处理软件。因此用 Python 进行数据处理时,很容易会和 Excel 打起交道。得益于前人的辛勤劳作,Python 处理 Excel 已有很多现成的轮子,比如 xlrd & xlwt & xlutils 、 XlsxWriter 、 OpenPyXL ,而在 Windows 平台上可以直接调用 Microsoft Excel 的开放接口,这些都是比较常用的工具,还有其他一些优秀的工具这里就不一一介绍,接下来我们通过一个表格展示各工具之间的特点:
类型xlrd&xlwt&xlutilsXlsxWriterOpenPyXLExcel开放接口读取支持不支持支持支持写入支持支持支持支持修改支持不支持支持支持xls支持不支持不支持支持xlsx高版本支持支持支持大文件不支持支持支持不支持效率快快快超慢功能较弱强大一般超强大
以上可以根据需求不同,选择合适的工具,现在为大家主要介绍下最常用的 xlrd & xlwt & xlutils 系列工具的使用。
xlrd & xlwt & xlutils 介绍
xlrd&xlwt&xlutils 是由以下三个库组成:
- xlrd:用于读取 Excel 文件;
- xlwt:用于写入 Excel 文件;
- xlutils:用于操作 Excel 文件的实用工具,比如复制、分割、筛选等;
安装库
安装比较简单,直接用 pip 工具安装三个库即可,安装命令如下:
$ pip install xlrd xlwt xlutils
写入 Excel
接下来我们就从写入 Excel 开始,话不多说直接看代码如下:
# 导入 xlwt 库import xlwt# 创建 xls 文件对象wb = xlwt.Workbook()# 新增两个表单页sh1 = wb.add_sheet('成绩')sh2 = wb.add_sheet('汇总')# 然后按照位置来添加数据,第一个参数是行,第二个参数是列# 写入第一个sheetsh1.write(0, 0, '姓名')sh1.write(0, 1, '专业')sh1.write(0, 2, '科目')sh1.write(0, 3, '成绩')sh1.write(1, 0, '张三')sh1.write(1, 1, '信息与通信工程')sh1.write(1, 2, '数值分析')sh1.write(1, 3, 88)sh1.write(2, 0, '李四')sh1.write(2, 1, '物联网工程')sh1.write(2, 2, '数字信号处理分析')sh1.write(2, 3, 95)sh1.write(3, 0, '王华')sh1.write(3, 1, '电子与通信工程')sh1.write(3, 2, '模糊数学')sh1.write(3, 3, 90)# 写入第二个sheetsh2.write(0, 0, '总分')sh2.write(1, 0, 273)# 最后保存文件即可wb.save('test.xls')
运行代码,结果会看到生成名为 test.xls 的 Excel 文件,打开文件查看如下图所示:
以上就是写入 Excel 的代码,是不是很简单,下面我们再来看下读取 Excel 该如何操作。
读取 Excel
读取 Excel 其实也不难,请看如下代码:
# 导入 xlrd 库import xlrd# 打开刚才我们写入的 test_w.xls 文件wb = xlrd.open_workbook("test_w.xls")# 获取并打印 sheet 数量print( "sheet 数量:", wb.nsheets)# 获取并打印 sheet 名称print( "sheet 名称:", wb.sheet_names())# 根据 sheet 索引获取内容sh1 = wb.sheet_by_index(0)# 或者# 也可根据 sheet 名称获取内容# sh = wb.sheet_by_name('成绩')# 获取并打印该 sheet 行数和列数print( u"sheet %s 共 %d 行 %d 列" % (sh1.name, sh1.nrows, sh1.ncols))# 获取并打印某个单元格的值print( "第一行第二列的值为:", sh1.cell_value(0, 1))# 获取整行或整列的值rows = sh1.row_values(0) # 获取第一行内容cols = sh1.col_values(1) # 获取第二列内容# 打印获取的行列值print( "第