Python读写 Excel 需要导入xlrd(读),xlwd(写)模块。
1. xlrd 模块
1.1 Excel 文件处理
- 打开 excel 文件
import xlrd excel = xlrd.open_workbook("data.xlsx")
- 获取并操作 sheet 工作表
sheet_names = excel.sheet_names() # 返回book中所有工作表的名字, ['Sheet1', 'Sheet2', 'Sheet3'] excel.sheet_loaded(sheet_name or indx) # 检查某个sheet是否导入完毕 # 以下三个函数都会返回一个 xlrd.sheet.Sheet() 对象 sheet = excel.sheet_by_index(0) # 通过索引获取,例如打开第一个 sheet 表格 sheet = excel.sheet_by_name("sheet1") # 通过名称获取,如读取 sheet1 表单 sheet = excel.sheets()[0] # 通过索引顺序获取 sheet.row_values(0) #获取第一行的数据 sheet.col_values(0) #获取第一列的数据 sheet.nrows #获取总共的行数 sheet.ncols #获取总共的列数
- 遍历所有行
for i in range(0, sheet.nrows): row_list = sheet.row_values(i) # 每一行的数据在row_list 数组里
1.2 日期处理
import datetime from xlrd import xldate_as_datetime xldate_as_datetime(43346.0, 0).strftime('%Y/%m/%d') # '2018/09/03'
2. xlwt 模块
2.1 创建 Book 工作簿(即 excel 工作簿)
import xlwt workbook = xlwt.Workbook(encoding = 'utf-8') # 创建一个workbook并设置编码形式
2.2 添加 sheet 工作表
worksheet = workbook.add_sheet('My Worksheet') # 创建一个worksheet
2.3 向工作表中添加数据并保存
worksheet.write(1,0, label = 'this is test') # 参数对应行, 列, 值 workbook.save('save_excel.xls') # 保存
2.4 设置宽度
xlwt 中列宽的值表示方法:默认字体 0 的 1/256 为衡量单位。
xlwt 创建时使用的默认宽度为 2960,既 11 个字符 0 的宽度,所以我们在设置列宽时可以用如下方法:
width = 256 * 20,其中 256 为衡量单位,20 表示 20 个字符宽度。