Python操作excel

来源:互联网 发布:lb极速网络 编辑:程序博客网 时间:2024/06/05 16:54

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.nrowsncols=table.ncols

5、获取整行和整列的值

table.row_values(number)table.column_values(number)

6、获取单元格的值

cell_A1=table.row(0)[0].valuecell_A1=table.cell(0,0).valuecell_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_workbookwb=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)
原创粉丝点击