Python操作excel

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)
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值