当前位置: 首页 > wzjs >正文

南京网站建设耐油橡胶板球场 技术支持 东莞网站建设

南京网站建设耐油橡胶板,球场 技术支持 东莞网站建设,全面的手机网站建设,网站建设与维护功能意义在日常工作中,我们经常会遇到因文件损坏或格式问题无法打开的 Excel 文件。尤其是 .xls 格式的旧版 Excel 文件,在某些情况下可能由于损坏、格式不兼容或其他原因,导致无法通过常规方式读取和处理。本文将分享一种通过 Python 程序解决损坏的…

在日常工作中,我们经常会遇到因文件损坏或格式问题无法打开的 Excel 文件。尤其是 .xls 格式的旧版 Excel 文件,在某些情况下可能由于损坏、格式不兼容或其他原因,导致无法通过常规方式读取和处理。本文将分享一种通过 Python 程序解决损坏的 Excel 文件格式问题的办法——即使文件损坏,我们也可以通过复制文件内容到新的 Excel 文件中,从而避免数据丢失。

问题背景

您可能会遇到以下情况:

  • 使用 Excel 打开某些 .xls 文件时提示“文件格式不受支持”或“文件损坏”。
  • 使用 Python 程序读取 .xls 文件时,报错如 Unsupported format, or corrupt file: Expected BOF record

这些错误通常是由于文件损坏,或者由于 pandasopenpyxl 等库不支持老旧的 .xls 文件格式。

解决方案:通过 COM 自动化打开 Excel 文件

在这种情况下,我们可以通过使用 win32com 库与 Excel 应用进行交互,利用 Excel 本身的功能打开、读取、复制和保存文件。即使文件损坏,我们也可以尝试提取其中的内容,并将其复制到新的 .xlsx 文件中。

1. 安装 pywin32

首先,确保安装了 pywin32 库,这样我们可以通过 COM 自动化控制 Excel。可以通过以下命令安装:

pip install pywin32

2. 代码实现:读取文件内容并复制到新的 Excel 文件

我们将编写一个 Python 脚本,使用 win32com.client 来控制 Excel,实现以下功能:

  1. 打开损坏的 .xls 文件。
  2. 复制文件中的内容(不需要关心原文件格式)。
  3. 将内容保存到一个新的 .xlsx 文件中。
import os
import win32com.clientdef convert_xls_to_xlsx(input_dir, output_dir):excel = win32com.client.Dispatch("Excel.Application")excel.Visible = False  # 不显示窗口excel.DisplayAlerts = False  # 禁用警告弹窗os.makedirs(output_dir, exist_ok=True)for filename in os.listdir(input_dir):if filename.lower().endswith('.xls'):clean_filename = remove_specific_text(filename)# 构建新的路径input_path = os.path.abspath(os.path.join(input_dir, filename))output_path = os.path.abspath(os.path.join(output_dir, clean_filename.replace('.xls', '.xlsx')))try:# 打开 .xls 文件wb = excel.Workbooks.Open(input_path)# 创建一个新的 .xlsx 文件new_wb = excel.Workbooks.Add()for sheet_index in range(wb.Sheets.Count):sheet = wb.Sheets(sheet_index + 1)  # 获取工作表new_sheet = new_wb.Sheets.Add()  # 新建一个工作表# 设置新工作表的名称new_sheet.Name = sheet.Name# 将原工作表的内容复制到新工作表sheet.UsedRange.Copy()new_sheet.Paste()# 保存新的文件new_wb.SaveAs(output_path, FileFormat=51)  # 51 是 .xlsx 格式new_wb.Close()wb.Close()print(f"Converted: {input_path} -> {output_path}")except Exception as e:print(f"Error converting {input_path}: {e}")excel.Quit()input_dir = "./C_1"
output_dir = "./C_x"
convert_xls_to_xlsx(input_dir, output_dir)

3. 代码解释:

  • 移除文件名中的特定文本
    我们通过 remove_specific_text() 函数将文件名中的 "全部A股" 文本去除。这可以确保文件名保持干净,避免中文字符干扰后续处理。

  • 使用 Excel COM 接口打开文件
    通过 excel.Workbooks.Open(input_path) 打开 Excel 文件,无论文件是否损坏,Excel 本身都能尝试打开它并读取内容。

  • 复制工作表内容
    我们通过遍历原文件的所有工作表,将每个工作表的内容(包括数据和格式)复制到新建的 .xlsx 文件中。每个工作表通过 sheet.UsedRange.Copy() 方法进行复制,然后粘贴到新文件中。

  • 保存新文件
    最后,我们使用 new_wb.SaveAs(output_path, FileFormat=51) 将新文件保存为 .xlsx 格式。FileFormat=51 表示保存为 Excel 2007 或更高版本的 .xlsx 文件。

  • 禁用警告弹窗
    为避免出现 Excel 提示粘贴板内容过大的警告,我们将 excel.DisplayAlerts = False 以禁用所有警告弹窗。

4. 处理文件名

在上面的代码中,我们还添加了 remove_specific_text() 函数,它将文件名中的 "全部A股" 删除。这是因为有时我们希望去除文件名中的特定字符(例如中文字符),以便文件名更加简洁。

5. 运行效果:

  • 输入全部A股20240426_C.xls
  • 输出20240426_C.xlsx,内容被成功复制并保存为新的 .xlsx 文件。

即使原始 .xls 文件损坏或无法打开,程序也能够提取出其中的内容,并将其保存为新的 .xlsx 文件,避免了数据丢失。

总结

通过 Python 脚本结合 Excel 的 COM 接口,我们能够有效地读取损坏的 .xls 文件,提取其内容,并将其保存为新的 .xlsx 格式文件。这种方法对于大批量处理损坏的 Excel 文件非常有效,避免了人工操作的繁琐,并保证了数据的完整性。

这种解决方案适用于需要修复损坏的 .xls 文件或在格式不兼容的情况下提取内容的场景。希望本文提供的解决方案能够帮助您解决类似问题,提升工作效率。


文章转载自:

http://rkLdlmTB.wgzzj.cn
http://qG8v3LJb.wgzzj.cn
http://bTf84NuA.wgzzj.cn
http://6FwPWWdg.wgzzj.cn
http://vrgb57Id.wgzzj.cn
http://eeJPqJKE.wgzzj.cn
http://R5t0kZN8.wgzzj.cn
http://0zwfDbQm.wgzzj.cn
http://7lnW5DLF.wgzzj.cn
http://tsUwrf40.wgzzj.cn
http://bBaL512w.wgzzj.cn
http://JTNsnEKb.wgzzj.cn
http://nT7OWHW2.wgzzj.cn
http://uk9dCzUW.wgzzj.cn
http://ZOPy4IXC.wgzzj.cn
http://E3DIDx7y.wgzzj.cn
http://ehkCv33m.wgzzj.cn
http://zzESB4il.wgzzj.cn
http://oFmYkH3K.wgzzj.cn
http://KqhwJZuj.wgzzj.cn
http://hvD1mCGr.wgzzj.cn
http://lEKEdnkP.wgzzj.cn
http://jujgM8IH.wgzzj.cn
http://ots9Zws3.wgzzj.cn
http://x1BO2xzm.wgzzj.cn
http://b27m1GBw.wgzzj.cn
http://ddbPHWo0.wgzzj.cn
http://qTIthter.wgzzj.cn
http://gaKT42EE.wgzzj.cn
http://ifrJavgu.wgzzj.cn
http://www.dtcms.com/wzjs/618548.html

相关文章:

  • 四川城乡建设网站证件查询微网站开发多少钱
  • 大学网站建设说明书企业做网站和宣传册的作用
  • 废旧电脑做网站服务器微信开放平台开发文档
  • 分类网站发布信息有生意做吗做家教什么网站比较好
  • 代理厦门网站设计公司什么是网络营销?网络营销有什么特点?
  • 深圳住房建设局官方网站windows wordpress固定链接
  • 怎么做黑客把网站余额更改百度收录排名好的网站
  • 网站菜单设置怎么样才能找到网站后台网址
  • 电子商务网站建设及推广方案网络推广公司运营
  • 上海做网站的的公司有哪些镇江网站建设制作公司
  • 佛山网站改版薇晓朵 WordPress 国内项目计划
  • seosem是什么职位网络seo哈尔滨
  • 北京网站建设解决方案网页开发人员招聘
  • 境外网站服务器网站建设程序代码
  • 莱芜网站优化是什么seo网站提交
  • 网站开发培训深圳网站图片一般的像素
  • 网站运营主要是做什么响应式网站建设企业
  • 东莞常平做网站网络营销方式和方法
  • 中国空间站机械臂内蒙古互联网公司哪里最多
  • 建网站后如何运营网页设计师考证试题
  • 品牌网站建设黑白H狼网页设计论文的研究内容
  • 合肥网站建设晨飞php网页制作代码
  • 佛山百度网站排名优化适合wordpress的主机
  • 江苏运营网站建设业务有什么网站可以做设计赚钱吗
  • 网站建设wang.cd购车网站设计
  • 会网站开发维护的ps什么岗位网站设计什么样风格会高端些
  • 建筑设计网站素材电子商务网站的建设与流程
  • h5做招聘网站可以吗贵州省住房和城乡建设厅网站报名网
  • 做神马网站快速排哪个网站可以做全景图
  • 嘉定区建设局网站做网站时连服务器上的数据库