Python对Excel操作⽤法详解在python中,对excel表格读,写,追加数据,⽤以下三个模块:
1、xlrd 读取excel表中的数据
2、xlwt 创建⼀个全新的excel⽂件,然后对这个⽂件进⾏写⼊内容以及保存。
3、xlutils 读⼊⼀个excel⽂件,然后进⾏修改或追加,不能操作xlsx,只能操作xls。
⼀、读excel表
读excel要⽤到xlrd模块
1、导⼊模块 import xlrd
2、打开excel⽂件
table = data.sheets()[0] #通过索引顺序获取
table = data.sheet_by_index(0) #通过索引顺序获取
table = data.sheet_by_name(u'Sheet1')#通过名称获取
代码如下:
import xlrd
data = xlrd.open_workbook(r"C:\Users\907968\Desktop\test.xlsx")
table1 = data.sheets()[0]
table2 = data.sheet_by_index(0)
table3=data.sheet_by_name(u'Sheet1')
print(table1)
print(table2)
print(table3)
返回:
<xlrd.sheet.Sheet object at 0x0000000002F7F208>
<xlrd.sheet.Sheet object at 0x0000000002F7F208>
<xlrd.sheet.Sheet object at 0x0000000002F7F208>
3、获取⾏数和列数
import xlrd
data = xlrd.open_workbook(r"C:\Users\907968\Desktop\test.xlsx")
table = data.sheets()[0]
nrows = ws
ncols = ls
print("⾏数:%d\n列数:%d"%(nrows,ncols))
返回:
⾏数:13
列数:3
4、获取整⾏和整列的值,以列表形式返回
rows = w_values(0)
cols = l_values(0)
python怎么读取excel文件数据print("rows:%s\ncols:%s"%(rows,cols))
返回:
rows:['A1', 'B1', 'C1']
cols:['A1', 'A2', 'A3', 'A4', 'A5', 'A6', 'A7', 'A8', 'A9', 'A10', 'A11', 'A12', 'A13']
5、获取单元格数据
cell_A1 = ll_value(0,0)
cell_C4 = ll_value(3,2)
print("A1:%s\nC4:%s"%(cell_A1,cell_C4))
返回:
A1:A1
C4:C4
还可以使⽤⾏列索引来获取单元格数据
cell_A1 = w(0)[0].value
cell_C4 = l(2)[3].value
print("A1:%s\nC4:%s"%(cell_A1,cell_C4))
返回:
A1:A1
C4:C4
三、写excel操作
1、导⼊:
import xlwt
2、创建workbook
workbook = xlwt.Workbook(encoding='utf-8', style_compression=0)
encoding:设置字符编码,⼀般要这样设置:w = Workbook(encoding=’utf-8’),就可以在excel中输出中⽂了。默认是ascii
style_compression:表⽰是否压缩,不常⽤。
3、创建⼀个sheet对象,⼀个sheet对象对应Excel⽂件中的⼀张表格
sheet = workbook.add_sheet('test', cell_overwrite_ok=True)
其中的test是这张表的名字,cell_overwrite_ok,表⽰是否可以覆盖单元格,其实是Worksheet实例化的⼀个参数,默认值是False 4、向表中添加数据
sheet.write(0, 0, 'EnglishName') # 其中的'0-⾏, 0-列'指定表中的单元,'EnglishName'是向该单元写⼊的内容
sheet.write(1, 0, 'Marcovaldo')
txt1 = '中⽂名字'
sheet.write(0, 1, txt1)
txt2 = '马可⽡多'
sheet.write(1, 1, txt2)
5、保存
workbook.save(r'e:\test1.xls')
四、追加数据
版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。
发表评论