- xlrd读取文件
xlrd是跨平台的,主要示例代码如下:
workbook_object = xlrd.open_workbook(report_path) #打开文件,获取workbook对象
work_sheet = workbook_object.sheet_by_name("Sheet1")#基于sheet名字获取到sheet对象
the_sheet.cell(7,3).ctype#获取单元格的类型
使用work_sheet.nrows
获取行数,使用cell_value(i,j)
获取某个格子的值
python读取excel中单元格的内容返回的有6种类型:
- 0 empty
- 1 string
- 2 number
- 3 date
- 4 boolean
- 5 error
- xlwings的使用
根据目前的研究,xlwings很可能是调用了Excel VBA API实现的,代码被调用时打开了Excel程序实例,这也意味着它可以做到更加复杂的操作。部分示例代码如下:
the_workbook=xw.Book(template_path) #打开文件,获取workbook对象
detail_sheet=xw.Sheet("Sheet1") #sheet名字
detail_sheet.range(str(i+6)+':'+str(i+6)).api.Insert()#利用Excel VBA API插入新的行
detail_sheet.range(i+6,j+1).value = the_line[j]#给某个格子填写内容,注意第1个格子A1是1,1
detail_sheet.range('5:5').api.EntireRow.Delete()#删掉一行,此处是删除掉第5行
the_workbook.app.quit()#用这个方法来退出Excel程序,the_workbook.close()只能关掉当前打开的文件
-
xlwt的使用
在有xlwings的情况下还要用xlwt,主要的原因是:
-
xlwings不支持Linux(Linux下面没有 MS Office)
-
xlwt更加简单
注意:xlwt目前没有办法通过模板来进行写入,所以落入了下乘
主要代码示例如下:
-
style = xlwt.XFStyle() # 初始化样式
font = xlwt.Font() # 为样式创建字体
font.name = 'Times New Roman'
font.bold = True # 黑体
font.underline = True # 下划线
font.italic = True # 斜体字
style.font = font # 设定样式
worksheet.write(0, 0, 'Unformatted value') # 不带样式的写入
worksheet.write(1, 0, 'Formatted value', style) # 带样式的写入
workbook.save('formatting.xls') # 保存文件