excel - 尝试通过 Python 转换为 PDF 时 Excel 显示错误
问题描述
我正在尝试编写一个代码,该代码会自动将我的 Excel 工作表保存为 PDF 并使其正常工作,但是对于某些文件,Excel 会向我抛出一个错误,指出“文档未保存。文档可能已打开,或者可能有错误保存时遇到。”
我试过用其他文件运行相同的代码,它似乎适用于大约一半的文件。我试图将文件命名为不同的 PDF 名称,但对于相同的文件仍然会引发相同的错误。
import win32com.client as win32
Xlsx = win32.Dispatch('Excel.Application')
Xlsx.Visible = True
wb = Xlsx.Workbooks.Open('Sample')
wb.WorkSheets([3,4,5,6,7,8]).Select()
wb.ActiveSheet.ExportAsFixedFormat(0, 'Sample')
wb.Save()
wb.Close()
Xlsx.Quit()
del wb
del Xlsx
解决方案
我会将此作为评论,但我还没有足够的荣誉来做到这一点。我建议问题可能是某些文件较大,无论出于何种原因,文件需要更长的时间来保存,因此在文件被关闭(但尚未保存)时存在问题。因此,我认为如果您在导出之后和/或关闭之前暂停几毫秒,它将处理此问题。
最初,您可以尝试以下延迟一秒钟:
进口时间
时间.sleep(1)
如果这样可以解决问题,您可以使用 time.sleep(.100) 将时间减少到 100 毫秒并再次测试。
推荐阅读
- java - RecyclerView 适配器中基于位置的条件 UI 元素
- reactjs - 从 Gatsby React 中的脚本通过 Stripe API 创建新的 SKU
- azure-devops - 拒绝访问。需要使用池默认权限来执行操作
- html - 根据历史记录禁用 Chrome 中各个输入字段中的自动建议
- python-2.7 - 如何列出具有圆内像素坐标的数组
- swift - 带有 EKEvents 的 PromiseKit - 询问用户访问日历事件的权限
- php - 使用 $_POST 时服务器响应为空
- python - 将两个 Pandas 数据帧与一个 ID 值配对
- siebel - Siebel - 更改数据库名称
- excel - 使用 vba 对字体颜色进行排序