admin管理员组文章数量:1516870
我正在尝试编写和使用python和pywin32创建excel文件的应用程序,我想使用默认格式和扩展名保存该文件,无论用户使用的是哪个版本的excel.根据excel的版本,它们使用的默认格式可以是使用“ .xlsx”扩展名的“ Open XML Workbook”.其他时候,它可能是基本的excel格式和“ .xls”扩展名.另外,用户可以将excel配置为使用其他默认格式.
我知道如何找到默认格式(Application.DefaultSaveFormat)-但我不知道如何确定该格式的默认扩展名.问题的部分原因是我的文件名甚至在扩展名之前都包含句点:
基本文件名是“ filename.BOM”,因此实际文件名应为“ filename.BOM.xls”或“ filename.BOM.xlsx”,具体取决于默认格式.
如果我在文件名中没有加倍号,那一切都会好的.
因此,如果默认格式为“ Open XML Workbook”,则Workbook.SaveAs(“ filename”)将创建一个名为“ filename.xlsx”的文件.但是,Workbook.SaveAs(“ filename.BOM”)创建的文件名为“ filename.BOM”.当在文件名中看到句点时,Excel不会添加默认扩展名.
我唯一能弄清楚的是保存一个临时文件,从中获取扩展名,然后删除该临时文件-但这似乎很麻烦.有人有更好的解决方案吗?
from tempfile import mktemp
from os import path
from os import remove as delfile
class excel:
def __init__( self):
self.app = DispatchEx( "Excel.Application" )
def saveas_default_ext_format( self, workbook, filename):
# filename - file name with path but without extension
tmpname = mktemp()
alerts = self.app.DisplayAlerts
self.app.DisplayAlerts = False
workbook.SaveAs( tmpname)
self.app.DisplayAlerts = alerts
tmpname = self.app.ActiveWorkbook.FullName
x, ext = path.splitext( tmpname)
fullname = filename + ext
workbook.SaveAs( fullname)
delfile( tmpname)
return fullname
版权声明:本文标题:掌握Python文件的个性化标签:揭秘如何找到并修改你的-Excel数据保存格式的秘密通道。 内容由网友自发贡献,该文观点仅代表作者本人, 转载请联系作者并注明出处:https://www.betaflare.com/biancheng/1772425567a3274252.html, 本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌抄袭侵权/违法违规的内容,一经查实,本站将立刻删除。


发表评论