首页 > 编程语言 >Python 实现 xls 文件转 xlsx 的若干方法

Python 实现 xls 文件转 xlsx 的若干方法

时间:2023-10-29 15:12:21浏览次数:37  
标签:xlsx Python Excel pyexcel file test xls

在 Python 中,可以采用 pandas、pyexcel、win32com 和 xls2xlsx 这四个模块,实现 xls 转 xlsx 格式。

以 Excel 示例文件 test_Excel.xls 为例,具体内容如下图所示:

 

 pandas 

安装命令

pip install pandas -i https://mirrors.aliyun.com/pypi/simple

具体使用方法

import pandas as pd

filename = "test_Excel.xls"
outfile = "test_Excel-pandas.xlsx"
# Read Excel xls file
data = pd.read_excel(filename)
# Write to xlsx file with no row index
data.to_excel(outfile, index=False)

注:上面的方法输出的 xlsx 文件只保留了文本,没有保留格式信息。

 

pyexcel

安装命令

pip install pyexcel -i https://mirrors.aliyun.com/pypi/simple

具体使用方法

import pyexcel

filename = "test_Excel.xls"
outfile = "test_Excel-pyexcel.xlsx"
# Convert xls file to xlsx directly
pyexcel.save_book_as(file_name=filename, dest_file_name=outfile)

注:上面的方法输出的 xlsx 文件同样只保留了文本,没有保留格式信息。

 

win32com

安装命令

python -m pip install pywin32 -i https://mirrors.aliyun.com/pypi/simple

具体使用方法

import os
import win32com.client as win32

filename = "test_Excel.xls"
outfile = "test_Excel-win32.xlsx"
# Open up Excel 
excel = win32.gencache.EnsureDispatch("Excel.Application")
# Open xls file
wb = excel.Workbooks.Open(os.path.abspath(filename))
# Save as xlsx file
wb.SaveAs(os.path.abspath(outfile), FileFormat=51)
wb.Close()
excel.Application.Quit()

注:win32com 模块只适用于已安装 Excel 软件的Windows 系统下,但输出的 xlsx 文件可以同时保留文本和格式。

 

xls2xlsx

安装命令

pip install xlrd xls2xlsx -i https://mirrors.aliyun.com/pypi/simple

具体使用方法

from xls2xlsx import XLS2XLSX

filename = "test_Excel.xls"
outfile = "test_Excel-x2x.xlsx"
# Read xls file
x2x = XLS2XLSX(filename)
# Write to xlsx file
x2x.to_xlsx(outfile)

注:使用上面的方法得到的 xlsx 文件可以同时保留文本和格式信息,并且不依赖于 Windows 系统和 Excel 程序。

 

参考资料

[1] pandas: powerful Python data analysis toolkit. https://github.com/pandas-dev/pandas

[2] pyexcel: single API for reading, manipulating and writing data in csv, ods, xls, xlsx and xlsm files. https://github.com/pyexcel/pyexcel 

[3] win32com: Python for Windows (pywin32) Extensions. https://github.com/mhammond/pywin32

[4] xls2xlsx: convert xls file to xlsx (in Python 3). https://github.com/snoopyjc/xls2xlsx

标签:xlsx,Python,Excel,pyexcel,file,test,xls
From: https://www.cnblogs.com/klchang/p/17795886.html

相关文章

  • Python 模块:创建、导入和使用
    什么是模块?将模块视为代码库。模块是一个包含一组函数的文件,您想要在应用程序中包含这些函数。创建一个模块要创建一个模块,只需将要包含在其中的代码保存在扩展名为.py的文件中:示例:将以下代码保存在名为mymodule.py的文件中:defgreeting(name):print("Hello,"+name)......
  • python循环迭代
    学习目标掌握for与while循环掌握continue,break,pass的区别核心知识循环中有3种常见的方式顺序:从上向下,顺序执行代码(从上往下执行)分支:根据条件判断,决定执行代码的分支(if/else)循环:让特定代码重复执行(for/while)for循环for可循环遍历的对象有字符串,列表,字典,集合,元组#......
  • python条件判断
    学习目标1、掌握条件判断和流程控制2、掌握条件运算符==,>,<,in3、掌握if/else/elif判断核心知识if判断判断相同:==和is用于判断两个变量的值是否一样,==是判断数据的值是否一样,is不仅判断数据的值还判断数据是否指向同一个对象。判断大小:可配合>、<来判断大小判断存......
  • python函数与异常
    学习目标1、掌握函数的定义2、掌握函数的规定语法3、掌握函调用4、掌握函数的参数5、掌握函数的返回值6、掌握异常处理核心知识啥是函数函数是组织好的,可重复使用的,用来实现单一,或相关联功能的代码段,还能提高代码的重复利用率。python自带许多内置函数,比如print()打印......
  • python文件操作
    课程目标掌握文本写入的语法掌握文本打开、读取的语法核心知识首先在当前目录下放一个test.txt文件文件读取f=open('test.txt','r',encoding='utf-8')print(f.read())f.close()文件写入除了write()写入语法,还有writelines()直接写入一个列表f=open('test.txt......
  • python综合练习
    学习目标1、random+print+while+format+判断符号>>>彩票游戏2、open+readlines+def函数>>>卖包子3、split+replace+readlines+sockets>>>批量获取域名对应ip并保存案例练习猜彩票importrandom,timea='{}{}{}{}{}{}'.format(random.randint(1,9),random.randint(1,......
  • python系统内置库
    学习目标1、了解os模块2、了解time模块3、了解random模块核心知识简单的说就是别人已经帮你写好复杂的操作了,而你只需要导入所需要的内置库,然后就可以调用里面的方法,使用也很简单,只需要import关键字导入即可使用os模块os模块主要有以下4个功能1、系统相关2、执行命......
  • python数据类型
    学习目标1、定义变量2、了解input输入3、熟悉列表list的功能与操作4、熟悉元组tuple的功能与操作5、熟悉集合set的功能与操作6、熟悉字典dict的功能与操作核心知识变量a='安全开发'print(a)print('====')a='安全测试'print(a)输出a=input('你是谁:')prin......
  • 初识python
    学习目标1、使用print输出内容2、熟悉字符串类型3、熟悉数字类型4、熟悉数字与字符串操作核心知识输出print可控制输出内容也可配合+、-、、/进行运算,和整数型配合可进行运算和字符型配合有不同效果,如+为拼接,为多次输出注:整数型如:123456,字符型需用引号包起来,可为中文......
  • Python 模块:创建、导入和使用
    什么是模块?将模块视为代码库。模块是一个包含一组函数的文件,您想要在应用程序中包含这些函数。创建一个模块要创建一个模块,只需将要包含在其中的代码保存在扩展名为.py的文件中:示例:将以下代码保存在名为mymodule.py的文件中:defgreeting(name):print("Hello,"+name......