1
xlrd
xlrd用于在Excel中读写数据
1、打开Excel工作簿
data=xlrf.open_workbook('data.xlsx')
2、查看工作簿里所有sheet名称
data.sheet_names()
3、选择一个工作表(通过索引或名称)
#获取第一个工作表
table=data.sheets()[0]
#通过索引获取第一个工作表
table=data.sheet_by_index(0)
#通过表名称选择工作表
table=data.sheet_by_name('hello')
4、获取表格的行数和列数
nrows=table.nrows
ncols=table.ncols
5、获取整行和整列的值
table.row_values(number)
table.column_values(number)
6、获取单元格的值
cell_A1=table.row(0)[0].value
cell_A1=table.cell(0,0).value
cell_A1=table.col(0)[0].value
xlrd的写操作,原博没写,我用的是xlwt,所以日后再补。
xlwt
xlwt为纯写入操作
1、新建一个Excel文件(只能通过新建写入)
1 data=xlwt.Workbook()
2、新建一个工作簿
table=data.add_sheet('hello')
3、写入数据到A1单元格
table.write(0,0,'666')
如果对同一个单元格重复操作,会引发overwrite Exception,想要取消该功能,需要在添加工作表时指定为可覆盖
table=data.add_sheet('hello',cell_overwrite_ok=True)
保存文件
data.save('test.xls')
不支持xlsx格式,只能保存扩展名xls
xlwt支持一定样式如下:
#初始化样式
style=xlwt.XFStyle()
#为样式创建字体
font=xlwt.Font()
#指定字体名字
font.name='Time New Roman'
#字体加粗
font.bold=True
#将该font设定为style的字体
style.font=font
#写入到文件时使用该样式
sheet.write(0,1,'hello world',style)
openpyxl
该模块支持最新版的Excel文件格式,对Excel具有相应的读写操作,对此有专门的Reader和Writer两个类,便于Excel文件的操作。虽然如此,但一般还用默认的workbook
来进行操作。
1、读取Excel常用操作
from openpyxl.reader.excel import load_workbook
wb=load_workbook(filename)
2、显示工作表的索引范围
wb.get_named_ranges()
3、显示所有工作表的名字
wb.get_sheet_names()
4、取得第一张表
sheetnames=wb.get_sheet_names()
ws=wb.get_sheet_by_name(sheetnames[0])
5、获取表名
ws.title
6、获取表的行数
ws.get_highest_row()
7、获取表的列数
ws.get_highest_column()
8、单元格的读取,此处和xlrd的读取方式很相近,都是通过行和列的索引来读取
#读取B1单元格中的内容
ws.cell(0,1).value
也支持通过Excel坐标来读取数据
#读取B1单元格中的内容
ws.cell("B1").value
写操作只有一种方式,就是通过坐标,例如要向单元格C1
写数据,就要用类似ws.cell(“C1”).value=something
这样的方式。一般推荐用openpyxl中的writer类来实现
#ExcelWriter,里面封装好了对Excel的写操作
from openpyxl.writer.excel import ExcelWriter
#get_column_letter函数将数字转换为相应的字母,如1-->A,2-->B
from openpyxl.cell import get_column_letter
#新建一个workbook
wb = Workbook()
#新建一个excelWriter
ew = ExcelWriter(workbook = wb)
#设置文件输出路径与名称
dest_filename = r'empty_book.xlsx'
#第一个sheet是ws
ws = wb.worksheets[0]
#设置ws的名称
ws.title = "range names"
#向某个单元格中写入数据
ws.cell("C1").value=u'哈哈'
#最后保存文件
ew.save(filename=dest_filename)