使用Python操作XLS文件(wps中叫et)

本文介绍两种使用Python操作Excel的方法:一是通过win32com.client库直接操作Excel COM库,适用于Windows平台;二是利用pyExcelerator库跨平台读写Excel文件。提供了丰富的代码示例。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

      有一次TE需要一个**信息列表,我用python导出了一个txt文件丢给了他们,结果他们很不悦哇,呵呵,因为他们要把几百项数据人肉到xls文件中作为列表输出,工作量太大,便要求我导出成xls文件然后再给他们,我以编程实现太难推脱了,今天看了下python操作excle的方法,发现相当简单,呃,苦了TE们……

      我在网上找了下,发现至少有两种方法,第一种是直接操作excle的com库,当然python自带的lib里面已经给我们封装好了实现,直接使用就可以了,win32com.client,这种方法甚至可以直接把excle的进程调用起来。用法很简单,网上的文章也汗牛充栋,就不详细解说了,给个小例子吧,嘻嘻。这种只能在windows下运行,并且需要安装MS Excel。

 

      第二种方法是使用pyExcelerator开源库,这个可以到http://sourceforge.net/projects/pyexcelerator/去下载,不过这个链接不是很好下,另外我传了一份到csdn上面也可以去下,比较稳定,http://d.download.youkuaiyun.com/down/1884158/magictong。是一个zip包,解压后的文件如下:

      examples目录是给出的很多小例子,很全面,把这些例子搞明白,基本上使用pyExcelerator的基本方法你也就全搞明白了,其他目录不用管了,tools目录里面是一些转换工具,从xls文件转换到txt啦,html啦,有兴趣也可以看看。下面说怎么安装吧,其实readme.txt里面已经说的很清楚了,仔细看下这个文件吧,嘿嘿,这个目录下还有一个setup.py文件,这个文件是用于库的安装的,安装方法是python setup.py install,在win32下直接写个bat文件把这句写进去,放在和setup.py同一级目录,直接运行就over了,里面有cmd.bat文件是我加在里面的。

      安装好了,咱们就开始使用吧,先看看解析xls文件,简单几句就搞定了:

      xls的源文件如下所示:

      输出可不简单:

      仔细研究下这个数据,最外层是一个list,里面有三个元组,对应三个sheet,每个元组有两项数据,第一个是sheet的名字,如"Sheet1",第二项是一个字典,字典中的每一项的key是一个以xls文件的行列两项为元素的元组,而value就是该行列对应的数值,不过这个里面的类型可能就不会像xls里面那么丰富了。得到了这些数据,能干什么……我就不说了。

      再看看怎么写xls文件:

      输出xls文件如下:

 

      输出格式是很多的,可以看一个自带的例子:

       可以运行一下,看看都有些什么格式的可以输出,不过我找了下,不知道怎么输出一个标准的数值。

 

[END]

### 使用Python解析WPS文件的方法 #### 方法一:通过 `pywin32` 和 WPS 表格组件 如果目标是在 Windows 平台上利用已安装的 WPS 软件来处理 `.xlsx` 或其他支持的文件格式,则可以通过调用 COM 接口完成此操作。这需要先安装 `pywin32` 库以及确保本地环境已经配置好 WPS 的表格功能。 以下是基于 `pywin32` 处理 WPS 文件的一个基本示例: ```python import win32com.client as win32 def process_wps_excel(file_path, output_file): wps_app = win32.Dispatch('KET.Application') # 启动WPS应用程序 workbook = wps_app.Workbooks.Open(file_path) # 打开指定路径下的文件 worksheet = workbook.Sheets(1) # 获取第一个工作表 data_range = worksheet.Range("A1:B10") # 定义要提取的数据范围 values = data_range.Value # 提取单元格中的值 with open(output_file, 'w', encoding='utf-8') as f: for row in values: f.write(','.join([str(cell) for cell in row]) + '\n') workbook.Close(SaveChanges=False) # 关闭工作簿而不保存更改 wps_app.Quit() # 退出WPS应用 process_wps_excel(r'C:\path\to\yourfile.xlsx', r'C:\path\to\output.txt') ``` 这种方法依赖于实际运行环境中存在可用的 WPS Office 及其 ET 组件[^1]。 #### 方法二:使用 `openpyxl` 解析 Excel 文件 (兼容部分 WPS 文档) 对于标准的 `.xlsx` 格式的文档,推荐直接采用成熟的第三方库如 `openpyxl` 来加载并分析内容。尽管该工具主要针对 Microsoft Excel 设计,但它同样适用于由 WPS 创建的标准 XLSX 文件。 下面是一个简单的例子展示如何读取 .xlsx 类型的内容: ```python from openpyxl import load_workbook def read_xlsx_with_openpyxl(filepath): wb = load_workbook(filename=filepath) sheet_names = wb.sheetnames ws = wb[sheet_names[0]] # 假设只关注首个sheet页 all_rows = [] for row in ws.iter_rows(values_only=True): all_rows.append(row) return all_rows data = read_xlsx_with_openpyxl('example.xlsx') print(data[:5]) ``` 注意这里强调的是 `.xlsx` 文件的支持情况;如果是较旧版本的 `.xls` 则需考虑另外一种解决方案或者转换后再做进一步的操作[^2]。 #### 方法三:借助 Pandas 进行高级数据分析 Pandas 是另一个强大的数据科学包,在内部集成了多种 I/O 工具以便轻松导入不同类型的电子表格资料。它能够很好地配合上述提到的各种方式一起协作完成更复杂的任务需求。 实例代码如下所示: ```python import pandas as pd df = pd.read_excel('input.xls', engine='xlrd') # 对于老式 xls 需指明引擎参数 print(df.head()) ``` 当面对某些特殊场景比如混合了图片、图表或者其他非结构化元素的情况时可能还需要探索额外的技术手段去应对这些挑战[^3]。 ---
评论 6
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值