xlrd
只能读取Excel内容,如果你要 创建
一个新的Excel并 写入
数据,可以使用 openpyxl
库。
openpyxl
库既可以读文件、也可以写文件、也可以修改文件。
但是,openpyxl 库不支持老版本 Office2003 的 xls
格式的Excel文档,如果要读写xls格式的文档,可以使用 Excel 进行相应的格式转化。
执行 pip install openpyxl
安装该库
下面的代码,演示了 openpyxl 的 一些基本用法。
import openpyxl
# 创建一个Excel workbook 对象
book = openpyxl.Workbook()
# 创建时,会自动产生一个sheet,通过active获取
sh = book.active
# 修改当前 sheet 标题为 工资表
sh.title = '工资表'
# 保存文件
book.save('信息.xlsx')
# 增加一个名为 '年龄表' 的sheet,放在最后
sh1 = book.create_sheet('年龄表-最后')
# 增加一个 sheet,放在最前
sh2 = book.create_sheet('年龄表-最前',0)
# 增加一个 sheet,指定为第2个表单
sh3 = book.create_sheet('年龄表2',1)
# 根据名称获取某个sheet对象
sh = book['工资表']
# 给第一个单元格写入内容
sh['A1'] = '你好'
# 获取某个单元格内容
print(sh['A1'].value)
# 根据行号列号, 给第一个单元格写入内容,
# 注意和 xlrd 不同,是从 1 开始
sh.cell(2,2).value = '白月黑羽'
# 根据行号列号, 获取某个单元格内容
print(sh.cell(1, 1).value)
book.save('信息.xlsx')
下面的示例代码 将 保存在字典中的年龄表的内容 写入到excel文件中
import openpyxl
name2Age = {
'张飞' : 38,
'赵云' : 27,
'许褚' : 36,
'典韦' : 38,
'关羽' : 39,
'黄忠' : 49,
'徐晃' : 43,
'马超' : 23,
}
# 创建一个Excel workbook 对象
book = openpyxl.Workbook()
# 创建时,会自动产生一个sheet,通过active获取
sh = book.active
sh.title = '年龄表'
# 写标题栏
sh['A1'] = '姓名'
sh['B1'] = '年龄'
# 写入内容
row = 2
for name,age in name2Age.items():
sh.cell(row, 1).value = name
sh.cell(row, 2).value = age
row += 1
# 保存文件
book.save('信息.xlsx')
如果你的数据在一个列表或者元组中,可以使用append方法在sheet的末尾添加新行,写入数据,比如
import openpyxl
name2Age = [
['张飞' , 38 ] ,
['赵云' , 27 ] ,
['许褚' , 36 ] ,
['典韦' , 38 ] ,
['关羽' , 39 ] ,
['黄忠' , 49 ] ,
['徐晃' , 43 ] ,
['马超' , 23 ]
]
# 创建一个Excel workbook 对象
book = openpyxl.Workbook()
sh = book.active
sh.title = '年龄表'
# 写标题栏
sh['A1'] = '姓名'
sh['B1'] = '年龄'
for row in name2Age:
# 添加到下一行的数据
sh.append(row)
# 保存文件
book.save('信息.xlsx')