Python自动化办公笔记(04)xlwriter写入和openpyxl格式套用

四、xlwriter写入和openpyxl格式套用

安装第三方库:

pip install xlsxwriter
pip install openpyxl

xlsxwriter:即xlsx writer,写表格
openpyxl:追加写入

注意:这两个函数,用的都是新版Excel格式,即xlsx

1. xlsxwriter 写表格

与xlwt语法区别,在于新建工作表

  • xlsxwriter使用add_worksheet
  • xlwt使用add_sheet

语法举例:

# xlsxwriter新建工作表:
# 工作表 = 工作簿.add_worksheet('工作表名')
workbook = xlsxwriter.Workbook('d:/number.xlsx')
sheet0 = workbook.add_worksheet('sheet0') 

# xlwt新建工作表
# 工作表 = 工作簿.add_sheet('工作表名')
workbook = xlwt.Workbook()
sheet0 = workbook.add_sheet('sheet0')

代码demo:

# # 用于与下面的xlsxwriter格式对比
# # 如果执行会报错,因为xlwt不支持超过256列的表格
# import xlwt
# workbook = xlwt.Workbook()
# sheet0 = workbook.add_sheet('sheet0')
# for i in range(0, 300):
#     sheet0.write(0, i, i)
# workbook.save('d:/number.xls')

import xlsxwriter as xw     # 把xlsxwriter用缩写xw导入
workbook = xw.Workbook('d:/number.xlsx')        # 新建工作簿
sheet0 = workbook.add_worksheet('sheet0')       # 新建工作表
for i in range(0, 300):
    sheet0.write(0, i, i)
workbook.close()        # 前面第11行代码已经新建文档好了,所以这里只需要关闭

执行程序,会在D盘下生成一个number.xlsx文件。打开如图:

Python自动化办公笔记(04)xlwriter写入和openpyxl格式套用_第1张图片

2. openpyxl 追加写入

语法:

# 打开工作簿:
# 工作簿 = openpyxl.load_workbook('路径')
workbook = openpyxl.load_workbook('d:/车库.xlsx')     # 打开工作簿

# 打开工作表:
# 工作表 = 工作簿['工作表名']
sheet0 = workbook['Sheet1']     # 打开工作表

# 向单元格写值:
# 工作表名['单元格'] = 值
# '单元格'这里,可以直接写:字母+数字,如:B4,来代表单元格
sheet0['B3'] = '5'      # 写入5,xlsx中为文本格式

# 保存工作簿
# 工作簿.save('路径')
workbook.save('d:/test_write_data.xlsx')

示例:

Excel文件如下图,向表格中写入5, 7, 6, 9
Python自动化办公笔记(04)xlwriter写入和openpyxl格式套用_第2张图片

代码demo:

import openpyxl
workbook = openpyxl.load_workbook('d:/车库.xlsx')     # 打开工作簿
sheet0 = workbook['Sheet1']     # 打开工作表
sheet0['B3'] = '5'      # 写入5,xlsx中为文本格式
sheet0['B4'] = '7'
sheet0['B5'] = 6        # 写入6,xlsx中为数字格式
sheet0['B6'] = 9
workbook.save('d:/test_write_data.xlsx')

效果如图:
Python自动化办公笔记(04)xlwriter写入和openpyxl格式套用_第3张图片
可以看到:填写的前两个是文本格式,后两个是数字格式。


缺点:

  • xlsxwriter:不支持带格式的文件
  • openpyxl:性能不是特别稳定,会有莫名其妙的错误。常见错误:缺少边框线,颜色错误等

建议:

  • 如果Excel数据超过256列的话,用xlsxwriter函数,因为xlwt不支持超过256列的表格。
  • 套格式,且格式比较复杂,不好编辑,用openpyxl函数。

你可能感兴趣的:(Python自动化办公笔记)