python3 读写xlsx文件

从网上学到很多东西,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

  1. import xlrd  
  2. import re  
  3.   
  4.   
  5. wb = xlrd.open_workbook('1.xls'# 打开文件  
  6.   
  7. sh = wb.sheet_by_name('考试成绩')  
  8.   
  9.   
  10. sh=wb.sheet_by_index(0)#第一个表  
  11.   
  12. sheetNames = wb.sheet_names() # 查看包含的工作表  
  13.   
  14. # 获得工作表的两种方法  
  15. sh = wb.sheet_by_index(0)  
  16. sh = wb.sheet_by_name(u'Sheet1')  
  17.   
  18. # 单元格的值  
  19. cellA1 = sh.cell(0,0)  
  20. cellA1Value = cellA1.value  
  21.   
  22.   
  23.   
  24. # 第一列的值  
  25. columnValueList = sh.col_values(0)   

 

 

 

xlwt:

 

 

[python] view plain copy

  1. import xlwt  
  2. import re  
  3.   
  4.   
  5. wbk = xlwt.Workbook()  
  6.   
  7. sheet1 = wbk.add_sheet('sheet 1')  
  8.   
  9. sheet1.write(0,1,'test text')  
  10. # 修改内容警告解决方式:使用cell_overwrite_ok=True来创建worksheet:  
  11. # sheet2 =  wbk.add_sheet('sheet 2', cell_overwrite_ok=True)  
  12. wbk.save('test.xls')  

 

 

 

openpyxl读数据:

 

 

[python] view plain copy

  1. from openpyxl.reader.excel import load_workbook  
  2.   
  3.   
  4. wb = load_workbook('dd.xlsx')  
  5.   
  6.   
  7. sheetnames = wb.get_sheet_names()  
  8. ws = wb.get_sheet_by_name(sheetnames[0])  
  9.   
  10. data_dic = {}    # 建立存储数据的字典       
  11.   
  12. #把数据存到字典中     
  13. for  rx  in  range(ws.get_highest_row()):    
  14.         
  15.     temp_list = []    
  16.     pid = ws.cell(row = rx,column = 0 ).value    
  17.     w1 = ws.cell(row = rx,column = 1 ).value    
  18.     w2 = ws.cell(row = rx,column = 2 ).value    
  19.     w3 = ws.cell(row = rx,column = 3 ).value    
  20.     w4 = ws.cell(row = rx,column = 4 ).value    
  21.     temp_list = [w1,w2,w3,w4]    
  22.        
  23.     data_dic[pid] = temp_list    
  24.     
  25. #打印字典数据个数     
  26. print   (data_dic[10124020117])     

你可能感兴趣的:(python)