beh*_*ens 8 python com excel enumeration namespaces
我是编程/ python的新手,所以我很感激我能得到的任何帮助.我想通过COM使用Excel将excel文件保存为特定格式.这是代码:
import win32com.client as win32
def excel():
app = 'Excel'
x1 = win32.gencache.EnsureDispatch('%s.Application' % app)
ss = x1.Workbooks.Add()
sh = ss.ActiveSheet
x1.Visible = True
sh.Cells(1,1).Value = 'test write'
ss.SaveAs(Filename="temp.xls", FileFormat=56)
x1.Application.Quit()
if __name__=='__main__':
excel()
Run Code Online (Sandbox Code Playgroud)
我的问题是,如果我没有明确知道它的代码,我该如何指定FileFormat?浏览文档,我找到了关于FileFormat对象的参考.我对如何访问XlFileFormat对象并以一种我可以找到它的枚举值的方式导入它一无所知.
谢谢!
Gre*_*ins 10
这个问题有点陈旧,但是对于那些从Google访问此页面的人(正如我所做的那样),我的解决方案是通过win32com.client.constants
对象访问常量,而不是按照Eric的建议访问应用程序对象本身.这使您可以像在VBE中一样使用枚举常量:
>>> import win32com.client
>>> xl = win32com.client.gencache.EnsureDispatch('Excel.Application')
>>> C = win32com.client.constants
>>> C.xlWorkbookNormal
-4143
>>> C.xlCSV
6
>>> C.xlErrValue
2015
>>> C.xlThemeColorAccent1
5
Run Code Online (Sandbox Code Playgroud)
此外,除非您手动运行该makepy
实用程序,否则在使用常规win32com.client.Dispatch(..)
方法初始化应用程序时,常量可能不可用,这是我遇到的另一个问题.win32com.client.gencache.EnsureDispatch(..)
如果需要,使用(作为提问者)检查并在运行时生成Python绑定.
我发现这个ActiveState页面很有帮助.
当我使用 COM 访问 Quickbooks 时,我可以访问对象的常量成员下定义的常量。代码看起来像这样(您会对第三行感兴趣):
self._session_manager.OpenConnection2("",
application_name,
QBFC8Lib.constants.ctLocalQBD)
Run Code Online (Sandbox Code Playgroud)
我不确定这是否有效,但尝试一下:
import win32com.client as win32
def excel():
app = 'Excel'
x1 = win32.gencache.EnsureDispatch('%s.Application' % app)
ss = x1.Workbooks.Add()
sh = ss.ActiveSheet
x1.Visible = True
sh.Cells(1,1).Value = 'test write'
ss.SaveAs(Filename="temp.xls", FileFormat=x1.constants.xlWorkbookNormal)
x1.Application.Quit()
if __name__=='__main__':
excel()
Run Code Online (Sandbox Code Playgroud)
将 xlWorkbookNormal 替换为您在问题中发布的 X1FileFormat 网页中尝试选择的任何格式。
归档时间: |
|
查看次数: |
3762 次 |
最近记录: |