[Python学习笔记]制作自动将xls文件转化为xlsx文件的程序

这篇具有很好参考价值的文章主要介绍了[Python学习笔记]制作自动将xls文件转化为xlsx文件的程序。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

背景:供应商程序导出的文件是xls格式的,我需要使用Power Query将这些文件合并整理,但是目前没有找到可以打卡xls文件的代码,所以将xls文件转化为xlsx文件后再使用Power Query进行处理。

思路:

  1. 网上找到了将xls文件转化为xlsx文件的代码,将这个代码定义为一个函数去执行转换的功能;

  2. 在使用中,将目标文件夹的地址输入到cmd中,然后程序自动历遍每一个xls文件并将其转换为xlsx文件;

代码:

  1. 执行转换的代码,python的excel转换xls为xlsx几种方法 - CSDN文库

  2. 导入需要使用的module以及定义全局变量:全局变量有 a.输入的文件夹地址字符串,b.xls文件名列表,

import os
import pandas as pd

# 设定全局变量
folder_path = ''#xls文件夹路径
xlsfilename_list = ''#xls文件列表,从xls文件夹路径中导出

 

  3. 定义函数:将网上找到的执行代码定义为一个函数,此处输入输出的变量名要用自己之前定义的变量名,并且在函数内还需要定义一些局部变量。函数的输入是一个字符串,字符串的内容是xls文件的绝对地址。

#定义转换函数
def xls_to_xlsx(xlsfilename):
    temp = pd.read_excel(xlsfilename)#使用pd.read_excel来读取xls文件,输入为文件名称字符串
    xlsxfilename = xlsfilename.replace('.xls','.xlsx')#使用原文件名来命名新的xlsx文件,但是需要将后缀.xls改为.xlsx
    temp.to_excel(xlsxfilename,index = False)#将文件转化为xlsx文件
    return 

 

  4. 获取需要做变换的文件夹路径,并且将文件夹中的所有文件名全部获取

#交互输入地址并读取该地址下的文件名
print('请输入包含xls文件的地址并以回车结束')
folder_path = str(input())#输入的文件夹路径
os.chdir(folder_path)#将程序路径改为输入的文件夹路径
xlsfilename_list = os.listdir()#得到文件夹中所有文件的名称列表

 

  5. 使用for循环来历遍文件夹中的所有文件

#循环打开每一个xls文件并转换为xlsx文件
NumofCycle = len(xlsfilename_list)#获得路径中xls文件的数量,并且使用这个数量作为for循环的参数
for i in range(1,NumofCycle+1):
    print('正在转换第' + str(i) + '个文件')#提示目前正在转换的进度
    xls_to_xlsx(xlsfilename_list[i-1])#执行转换程序
print('转换完毕,退出请按任意键')#提示转换完毕

 

 

最终得到的整个程序如下:

# -*- coding: utf-8 -*-
"""
Created on Thu Dec 14 23:19:09 2023

@author: Ray
"""

import os
import pandas as pd

# 设定全局变量
folder_path = ''#xls文件夹路径
xlsfilename_list = ''#xls文件列表,从xls文件夹路径中导出

#定义转换函数
def xls_to_xlsx(xlsfilename):
    temp = pd.read_excel(xlsfilename)#使用pd.read_excel来读取xls文件,输入为文件名称字符串
    xlsxfilename = xlsfilename.replace('.xls','.xlsx')#使用原文件名来命名新的xlsx文件,但是需要将后缀.xls改为.xlsx
    temp.to_excel(xlsxfilename,index = False)#将文件转化为xlsx文件
    return 

#交互输入地址并读取该地址下的文件名
print('请输入包含xls文件的地址并以回车结束')
folder_path = str(input())#输入的文件夹路径
os.chdir(folder_path)#将程序路径改为输入的文件夹路径
xlsfilename_list = os.listdir()#得到文件夹中所有文件的名称列表


#循环打开每一个xls文件并转换为xlsx文件
NumofCycle = len(xlsfilename_list)#获得路径中xls文件的数量,并且使用这个数量作为for循环的参数
for i in range(1,NumofCycle+1):
    print('正在转换第' + str(i) + '个文件')#提示目前正在转换的进度
    xls_to_xlsx(xlsfilename_list[i-1])#执行转换程序
print('转换完毕,退出请按任意键')#提示转换完毕
os.system('pause')

 

 

问题以及解决办法:目前的程序不智能,还有以下几个问题需要处理:

  1. 无法识别文件夹中除了xls文件以外的其他文件,当路径中有xlsx文件以外,会将xlsx文件转化为xlsxx文件,很明显这会报错。目前需要人工确保文件夹中的所有文件为xls文件才能正确工作;解决这个问题的方法就是在执行循环中加一个判定的语句,判断文件名称中是否含有'.xls'字符串,如果包含则执行转换程序,不包含则continue

 

转换成exe文件:这个步骤是为了以后使用小程序方便,网络上有很多转换的案例,这里需要提示的就是:因为这个程序需要有人工输入交互,所以在转换时要把控制台打开,至少我在转换exe文件的时候如果没有加控制台-c的命令,最终exe文件是闪退的,代码没有问题,但是exe文件闪退。我加了-c的命令后就正常了。

[Python学习笔记]制作自动将xls文件转化为xlsx文件的程序

 

------------祝愿大家都能用python提高自己的工作效率文章来源地址https://www.toymoban.com/news/detail-760004.html

到了这里,关于[Python学习笔记]制作自动将xls文件转化为xlsx文件的程序的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • node简单处理xls、xlsx、docx文件

    最近想爬取一些excel和word文件中的数据,于是记录下来,方便自己后面复杂粘贴,xls、xlsx、docx文件还是能处理的,但是doc文件处理不了 使用cmd 在入口文件

    2024年02月15日
    浏览(39)
  • POI及EasyExcel操作xls,xlsx文件

    Apache POI 是基于 Office Open XML 标准(OOXML)和 Microsoft 的 OLE 2 复合文档格式(OLE2)处理各种文件格式的开源项目。 可以使用 Java 读写 MS Excel 文件,可以使用 Java 读写 MS Word 和 MS PowerPoint 文件。 HSSF - 提供读写 Microsoft Excel XLS 格式 (Microsoft Excel 97 (-2003)) 档案的功能。 XSSF - 提

    2024年02月11日
    浏览(41)
  • vue - - - - - 在线预览常见文件格式 .doc, .docx, .xls, .xlsx,.pdf

    关于一些文件的在线预览,最简易的实现方式是什么呢? 写在前面 .png, .jpg, .jpeg 等图片格式 直接预览http/https地址 即可 .pdf 文件 直接预览http/https地址 即可 .doc, .docx, .xls, .xlsx 等类型文件,需要在预览地址之前拼接上 https://view.officeapps.live.com/op/view.aspx?src= .ofd 等类型文件,需

    2024年02月09日
    浏览(78)
  • Python Excel xlsx,xls,csv 格式互转

    常常需要对excel的格式进行转换,借助 win32com 库,可以实现这个功能,下面我封装了下,方便使用。 win32com 表格处理函数底层,不同的格式有不同的数值对应: 比如下面我重点圈出来,常用的3个格式:csv/xlsx/xls 完整的mapping表格,请点击链接 :XlFileFormat enumeration (Excel) | Mic

    2024年02月04日
    浏览(36)
  • VBA:Application.GetOpenFilename打开指定文件夹里的excel类型文件(xls、xlsx)

    \\\'GetOpenFilename相当于Excel打开窗口,通过该窗口选择要打开的文件,并可以返回选择的文件完整路径和文件名。 \\\'Application.GetOpenFilename(“文件类型筛选规则(就是说明)”,“优先显示第几个类型的文件”,“标题”,“是否允许选择多个文件名”) 打开类型只限excel文件 \\\'“文件类型

    2024年02月11日
    浏览(49)
  • python excel复制数据保留单元格格式(.xls.xlsx)

    最近帮朋友开发一个数据excel根据条件动态过率的功能.读取生成用pandas很方便,但是这里有一点比较麻烦的是得保留原来的单元格格式.这点操作起来就要麻烦一点了.下面总结了.xlsx和.xls处理 xlsx文件处理可以使用openpyxl库进行处理,比较简单,流程如下 1.获取原来的数据cell 2.进行

    2024年02月03日
    浏览(49)
  • python 将 csv转excel (.xls和.xlsx)的几种方式

    excel 后缀有2种格式, .xls 是从 Excel 97 到 Excel 2003 的默认文件格式,而 .xlsx 是 Excel 2007 及更高版本的默认文件格式。 .xlsx和.xls格式的主要区别在于,.xls格式单个工作表最多支持65536行,256列。 .xlsx格式最多支持1048576行,16384列。 此外就是,存储同样多的数据,.xlsx格式文件更

    2024年02月08日
    浏览(82)
  • 用python将csv转excel (.xls和.xlsx)的几种方式

    excel 后缀有2种格式, .xls 是从 Excel 97 到 Excel 2003 的默认文件格式,而 .xlsx 是 Excel 2007 及更高版本的默认文件格式。 .xlsx和.xls格式的主要区别在于,.xls格式单个工作表最多支持65536行,256列。 .xlsx格式最多支持1048576行,16384列。 此外就是,存储同样多的数据,.xlsx格式文件更

    2024年02月05日
    浏览(54)
  • Java给文件加水印,支持.pptx,.doc,.docx,.xls,.xlsx,.pdf,.png,.jpg。

    office 相关格式文档的加密主要使用微软提供的Spire.Office for Java ,free部分有针对性每个类型的API说明和示例,请自行参考以下链接。下面也会附上我在项目中的实际工具类。 Spire.Office for Java | 专业的 Java Office 套件 | 创建、修改、转换、打印 Word/PowerPoint/PDF 文档 我的策略是

    2024年02月12日
    浏览(66)
  • 微信小程序 - 在线预览 Office 文件(doc / docx / xls / xlsx / ppt / pptx / pdf)

    网上大部分教程功能有问题且文章无逻辑混乱,本文将提供优秀的示例。

    2024年02月12日
    浏览(75)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包