python对xlsx表格的处理

安装xlrd xlwd

pip3.6 install xlrd
pip3.6 install xlwd
import xlrd
import xlwt

workbook = xlrd.open_workbook(r"/Users/peiwenjian/Desktop/房山测试环境.xlsx")
print(workbook.sheet_names())
sheet_name1 = workbook.sheet_names()[0]

sheet1 = workbook.sheet_by_index(0)
# sheet1 = workbook.sheet_by_index(sheet_name1)
print("sheet的名称:{0:3}\n行数:{1:3}\n列数:{2:3}".format(sheet1.name,sheet1.nrows,sheet1.ncols))
print("{}".format(sheet1.row_values(0)))
print("第三行的内容:{0}".format(sheet1.row_values(3)))
print("第3列的内容:{}".format(sheet1.col_values(2)))

获取单元格内容

print(sheet1.cell(0,0)) #第一行第一列
print(sheet1.cell_value(0,0))

print(sheet1.row(0)[0])
print(sheet1.col(0)[0])

获取单元格内容数据类型

#ctype :  0 empty,1 string, 2 number, 3 date, 4 boolean, 5 error

print(sheet1.cell(0,0).ctype)
print(sheet1.cell(7,0).ctype)

时间处理

#时间处理的使用
print(workbook.datemode)
print(xlrd.xldate_as_datetime(sheet1.cell_value(7,0),workbook.datemode))
print(xlrd.xldate_as_tuple(sheet1.cell_value(7,0),workbook.datemode))
print(sheet1.row_values(7))

处理合并单元格

print(sheet1.merged_cells)
"""
输出内容:
[(1, 3, 4, 5), (7, 8, 2, 5),(6, 7, 0, 3), (6, 7, 4, 6)]
"""
#merged_cells返回的这四个参数的含义是:(row,row_range,col,col_range),其中[row,row_range)包括row,不包括row_range,col也是一样,即(1, 3, 4, 5)的含义是:第1到2行(不包括3)合并,(7, 8, 2, 5)的含义是:第2到4列合并。

print(sheet1.cell_value(6,0))
print(sheet1.cell_value(6,4))

发现规律了没?是的,获取merge_cells返回的row和col低位的索引即可! 于是可以这样一劳永逸

谷文杰博客
请先登录后发表评论
  • 最新评论
  • 总共0条评论
  • 本站使用Laravel5.4框架程序搭建 © 2016-2017 guwenjie.freephp.top 版权所有 ICP证:京ICP备17038807号
  • 联系邮箱:guguguwenjie@163.com