从网上学到很多东西,xlrd支持Python3.x,所以可以直接pip安装(至于PIP配置快捷方式和使用国内镜像加速下载以后和CX FREEZE以及SUBLIME TEXT3的配置一起发吧)。xlwt则不保持继续支持Python3,官网也看到了,不过从pypi上搜索可以发现,出来了一个专门给py3准备的xlwt-future,用法一模一样,下载下来就连名字都一样。。。
而2007往后版本的Excel多出来个xlsx文件类型,是为了使Excel能存入超过65535行数据(1048576),所以读写xlsx文件需要另一个库叫openpyxl,支持Python3.x
下面放上3个demo,省的看文档了
xlrd:
[python] view plain copy
- import xlrd
- import re
- wb = xlrd.open_workbook('1.xls') # 打开文件
- sh = wb.sheet_by_name('考试成绩')
- sh=wb.sheet_by_index(0)#第一个表
- sheetNames = wb.sheet_names() # 查看包含的工作表
- # 获得工作表的两种方法
- sh = wb.sheet_by_index(0)
- sh = wb.sheet_by_name(u'Sheet1')
- # 单元格的值
- cellA1 = sh.cell(0,0)
- cellA1Value = cellA1.value
- # 第一列的值
- columnValueList = sh.col_values(0)
xlwt:
[python] view plain copy
- import xlwt
- import re
- wbk = xlwt.Workbook()
- sheet1 = wbk.add_sheet('sheet 1')
- sheet1.write(0,1,'test text')
- # 修改内容警告解决方式:使用cell_overwrite_ok=True来创建worksheet:
- # sheet2 = wbk.add_sheet('sheet 2', cell_overwrite_ok=True)
- wbk.save('test.xls')
openpyxl读数据:
[python] view plain copy
- from openpyxl.reader.excel import load_workbook
- wb = load_workbook('dd.xlsx')
- sheetnames = wb.get_sheet_names()
- ws = wb.get_sheet_by_name(sheetnames[0])
- data_dic = {} # 建立存储数据的字典
- #把数据存到字典中
- for rx in range(ws.get_highest_row()):
- temp_list = []
- pid = ws.cell(row = rx,column = 0 ).value
- w1 = ws.cell(row = rx,column = 1 ).value
- w2 = ws.cell(row = rx,column = 2 ).value
- w3 = ws.cell(row = rx,column = 3 ).value
- w4 = ws.cell(row = rx,column = 4 ).value
- temp_list = [w1,w2,w3,w4]
- data_dic[pid] = temp_list
- #打印字典数据个数
- print (data_dic[10124020117])