2024-06-07 06:26:00 发布
网友
我已经读过,用COM/ActiveX在Crystal reports中实现月报表自动化是可能的。我不太明白这是什么,或者你能用它做什么。
我也用Excel做了很多工作,看起来你也用COM/ActiveX与它接口。
有人能解释一下这是如何工作的吗?也许能提供一个简单的例子?
以下是创建文件并为单元格添加值的工作解决方案:
import win32com.client import xlsxwriter import os cwd = os.getcwd() file_path = cwd + "\\test.xlsx" #Create an excel file workbook = xlsxwriter.Workbook(file_path) worksheet = workbook.add_worksheet() workbook.close() #Open an excel application xlApp = win32com.client.Dispatch("Excel.Application") xlApp.Visible=1 workBook = xlApp.Workbooks.Open(file_path) print str(workBook.ActiveSheet.Cells(1,1)) workBook.ActiveSheet.Cells(1, 1).Value = "hello55" workBook.Close(SaveChanges=1) xlApp.Quit()
首先,您必须安装美妙的pywin32模块。
它提供COM支持。您需要运行makepy实用程序。它位于C:\...\Python26\Lib\site-packages\win32com\client。在Vista上,它必须以管理员权限运行。
makepy
C:\...\Python26\Lib\site-packages\win32com\client
此实用程序将显示所有可用的COM对象。您可以找到您的,它将为此对象生成一个python包装器。
包装器是在C:\...\Python26\Lib\site-packages\win32com\gen_py文件夹中生成的python模块。模块包含COM对象的接口。文件名是COM唯一id。如果有许多文件,有时很难找到正确的文件。
C:\...\Python26\Lib\site-packages\win32com\gen_py
之后你只需要调用正确的接口。很神奇:)
excel的一个简单例子
import win32com.client xlApp = win32com.client.Dispatch("Excel.Application") xlApp.Visible=1 workBook = xlApp.Workbooks.Open(r"C:\MyTest.xls") print str(workBook.ActiveSheet.Cells(i,1)) workBook.ActiveSheet.Cells(1, 1).Value = "hello" workBook.Close(SaveChanges=0) xlApp.Quit()
你基本上可以做相当于后期绑定的工作。所以通过IDispatch暴露的东西都可以被消费。
这是我本周末写的一些代码,通过WindowsImageAcquisition2.0从twain设备获取图像,并将数据放入基于gtk的用户界面中。
WIA_COM = "WIA.CommonDialog" WIA_DEVICE_UNSPECIFIED = 0 WIA_INTENT_UNSPECIFIED = 0 WIA_BIAS_MIN_SIZE = 65536 WIA_IMG_FORMAT_PNG = "{B96B3CAF-0728-11D3-9D7B-0000F81EF32E}" def acquire_image_wia(): wia = win32com.client.Dispatch(WIA_COM) img = wia.ShowAcquireImage(WIA_DEVICE_UNSPECIFIED, WIA_INTENT_UNSPECIFIED, WIA_BIAS_MIN_SIZE, WIA_IMG_FORMAT_PNG, False, True) fname = str(time.time()) img.SaveFile(fname) buff = gtk.gdk.pixbuf_new_from_file(fname) os.remove(fname) return buff
虽然不漂亮,但很管用。我断言它相当于你必须用VB写的东西。
以下是创建文件并为单元格添加值的工作解决方案:
首先,您必须安装美妙的pywin32模块。
它提供COM支持。您需要运行
makepy
实用程序。它位于C:\...\Python26\Lib\site-packages\win32com\client
。在Vista上,它必须以管理员权限运行。此实用程序将显示所有可用的COM对象。您可以找到您的,它将为此对象生成一个python包装器。
包装器是在
C:\...\Python26\Lib\site-packages\win32com\gen_py
文件夹中生成的python模块。模块包含COM对象的接口。文件名是COM唯一id。如果有许多文件,有时很难找到正确的文件。之后你只需要调用正确的接口。很神奇:)
excel的一个简单例子
你基本上可以做相当于后期绑定的工作。所以通过IDispatch暴露的东西都可以被消费。
这是我本周末写的一些代码,通过WindowsImageAcquisition2.0从twain设备获取图像,并将数据放入基于gtk的用户界面中。
虽然不漂亮,但很管用。我断言它相当于你必须用VB写的东西。
相关问题 更多 >
编程相关推荐