python3 读写xlsx文件

本文介绍了使用Python处理Excel文件的方法,包括xlrd、xlwt及openpyxl三个库的应用。xlrd支持Python3.x,用于读取.xls文件;xlwt提供Python3兼容版本xlwt-future用于写入.xls文件;openpyxl则用于处理.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])     
<think>根据用户问题,用户明确询问pandas库读写xlsx文件的方法。结合提供的引用信息(引用[1]和引用[2]),我将重点介绍以下内容: 1. 读取xlsx文件:使用pandas.read_excel()方法 2. 写入xlsx文件:使用pandas.DataFrame.to_excel()方法 3. 基本操作示例:包括读取单个/多个工作表、数据操作、保存文件等 注意:引用[2]提到支持多种文件格式(xls, xlsx等)和从本地/URL读取,这些信息需要包含在回答中。 我将按照以下结构组织回答: - 读取xlsx文件的方法和参数说明 - 写入xlsx文件的方法和参数说明 - 示例代码演示基本读写操作 - 注意事项(如依赖库openpyxl或xlrd的安装) 最后,按照系统要求生成相关问题。 </think>### Pandas读写.xlsx文件的方法 Pandas库通过`read_excel()`函数读取.xlsx文件,使用`to_excel()`方法写入.xlsx文件。以下是具体方法和注意事项: #### 1. **读取.xlsx文件** ```python import pandas as pd # 基本读取(默认读取第一个工作表) df = pd.read_excel("文件路径.xlsx") # 读取特定工作表(通过名称或索引) df_sheet1 = pd.read_excel("文件.xlsx", sheet_name="Sheet1") # 按名称 df_sheet2 = pd.read_excel("文件.xlsx", sheet_name=1) # 按索引(从0开始) # 读取多个工作表(返回字典) dfs = pd.read_excel("文件.xlsx", sheet_name=["Sheet1", "Sheet2"]) # 从URL读取 url_df = pd.read_excel("https://example.com/data.xlsx") ``` **关键参数**: - `sheet_name`:指定工作表(默认`0`) - `header`:表头行位置(默认`0`,即第一行) - `usecols`:选择特定列(如`"A:C"`或`[0,2]`) - `skiprows`:跳过指定行数 > 支持格式:xls, xlsx, xlsm, xlsb, odf 等[^2] #### 2. **写入.xlsx文件** ```python # 基本写入(覆盖原有文件) df.to_excel("输出路径.xlsx", index=False) # index=False不保存索引 # 写入多个工作表 with pd.ExcelWriter("多表输出.xlsx") as writer: df1.to_excel(writer, sheet_name="表1") df2.to_excel(writer, sheet_name="表2") # 追加到现有文件(需安装openpyxl) from openpyxl import load_workbook book = load_workbook("现有文件.xlsx") with pd.ExcelWriter("现有文件.xlsx", engine=&#39;openpyxl&#39;, mode=&#39;a&#39;) as writer: df.to_excel(writer, sheet_name="新表") ``` **关键参数**: - `sheet_name`:工作表名称(默认`"Sheet1"`) - `index`:是否写入行索引(默认`True`) - `engine`:指定引擎(如`"openpyxl"`或`"xlrd"`) #### 3. **注意事项** - **依赖库**:需安装处理引擎(建议安装最新版) ```bash pip install openpyxl xlrd # xlsx文件支持 ``` - **数据类型**:Excel日期/时间会自动转换为Pandas的`datetime64` - **大文件处理**:超过100万行需分块读取(`chunksize`参数) > 典型应用场景:数据清洗时读取原始Excel,处理后保存新文件[^1]
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值