Tag: win32com

如何让python等到Excelmacros/刷新完成

我正在使用Python在Excel中运行macros。 我想让Pythonclosuresexcel。 macros在Excel中刷新数据连接可能会很慢。 我如何让python等待刷新完成closures。 这就是我正在使用的,我需要的东西之前的xl.Quit,将等待,直到macros的刷新完成? import win32com.client import os xl = win32com.client.DispatchEx("Excel.Application") wb = xl.workbooks.open("X:\Backoffice\Options Trading\BloombergRate.xlsm") xl.Visible = True xl.run("Refresh") xl.Quit() 等待方式,我可以做这个工作?

使用Win32com Python中的Range和Union方法

一个新的Python程序员在这里。 我有一个问题,希望你能帮助我。 我正在做的是我通过Python在Excel工作表中标记单元格。 假设我在需要使用联盟的时候为一个巨大的单元格定义了一个名称。 所以这将是一个范围的联盟。 现在我正在查看VBA代码,并使用win32com将它们翻译成Python语法。 如果范围是几个单元格说50左右,我不需要联盟,但对于大的细胞我没有。 问题在哪里。 我已经拿出了下面的代码,但我最终得到了 “TypeError:Python实例无法转换为COM对象”错误。 from traits.api import HasTraits, Str, Int, Button,CStr, List from win32com.client import gencache import win32com.client,sys,os class cellTagging(HasTraits): wb = "" Data = CStr parameter = Str read_Write = Str sheet = Str cell_No = List cell_Value = Str excel = win32com.client.gencache.EnsureDispatch('Excel.Application') def _cell_No_changed(self): path=os.getcwd() fName = […]

使用Python的win32com API无法将Excel 2010文件保存为PDF?

尝试从Excel自动创buildPDF。 我可以保存为Excel文件没有任何问题,但不能作为PDF。 def run_excel(fname, col, rows): save_dir = os.path.join(os.path.dirname(fname), 'saved') save_file = os.path.join(save_dir, os.path.basename(fname)) save_pdf = os.path.join(os.path.splitext(save_file)[0], '.pdf') excel = win32com.client.gencache.EnsureDispatch("Excel.Application") book = excel.Workbooks.Open(Filename=fname) del_column(excel, book, col) del_row(excel, book, rows) # this works fine.. # book.SaveAs(save_file) book.SaveAs(save_pdf, FileFormat=c.xlTypePDF) # this does not. sheet = None book = None excel.Quit() excel = None 我的追溯: Traceback (most […]

如何从networking驱动器读取(仅限Python)Excel,并保持原样

我有一个python(2.7)脚本读取networking驱动器上的excel文件的信息。 工作正常,但在开发过程中有点烦人,在每个脚本运行后,excel文件被closures。 这将是预期的行为,如果Excel文件已经closures时,启动脚本,但我正在编辑的Exceltesting脚本。 此外,如果有人已经打开工作簿,我预计会出现问题,因为我不会自动打开工作簿作为只读副本(这样可以,因为我只能读取)。 所以问题是如何在Python中充分满足以下要求: 如果Excel在启动脚本时被closures,则必须在阅读后closures,否则不能 如果工作簿在启动脚本时被closures,则读取后closures,否则不closures 如果工作簿被另一个用户打开,则应该以只读副本打开 ? 迄今为止的努力: 除了使用Googlesearch,我已经在这方面search了类似的主题(比如“如何检查Excel是否打开”)。 大多数情况下,答案是关于如何绕开问题的核心,所以他们没有帮助我的。

win32com Excel PasteSpecial

我在Python中使用PasteSpecial遇到了一些麻烦。 以下是示例代码: import win32com.client as win32com from win32com.client import constants xl = win32com.gencache.EnsureDispatch('Excel.Application') xl.Visible = True wb = xl.Workbooks.Add () Sheet1 = wb.Sheets("Sheet1") # Fill in some summy formulas for i in range(10): Sheet1.Cells(i+1,1).Value = "=10*"+str(i+1) Sheet1.Range("A1:A16").Copy() Sheet1.Range("C1").Select() Sheet1.PasteSpecial(Paste=constants.xlPasteValues) 我收到以下错误: TypeError: Paste() got an unexpected keyword argument 'Paste' 我知道粘贴是一个关键字参数,因为这里的MSDN: http : //msdn.microsoft.com/en-us/library/office/ff839476( v= office.15).aspx 任何想法为什么它不会让我这样做? […]

Python Win32Com – ExportAsFixedFormat – MS Excel 2010文件

我已经花了一天的时间来弄清楚如何导出一个MS Excel文件作为PDF。 我迫切需要一个比我更聪明的人: 这是我到目前为止,我得到的错误: import os import win32com.client import win32com.client.dynamic import datetime import time # #Path to Read from where you want all the files read from InputWkbkPath = "O:/MIS/Reporting/Field Reports/2014_Template_Files/w_code/" obj = win32com.client.Dispatch("Outlook.Application") xlApp = win32com.client.DispatchEx('Excel.Application') OutputWkbkPath ='O:/MIS/Reporting/Field Reports/2015_Template_Files/Directors /Templates/20150123_Archive/' for subdir, dirs, files in os.walk(InputWkbkPath): for file in files: #print os.path.join(subdir, file) ip= […]

Python win32com'参数数量无效'

我正在尝试使用win32com将多个xlsx文件转换为xls使用以下代码: import win32com.client f = r"./input.xlsx" xl = win32com.client.gencache.EnsureDispatch('Excel.Application') wb = xl.Workbooks.Open(f) xl.ActiveWorkbook.SaveAs("./somefile.xls", FileFormat=56) 这是与以下错误失败: Traceback (most recent call last): File "xlsx_conv.py", line 6, in <module> xl.ActiveWorkbook.SaveAs("./somefile.xls", FileFormat=56) File "C:\python27\lib\site-packages\win32com\gen_py\00020813-0000-0000-C000-000000000046x0x1x9.py", line 46413, in SaveAs , Local, WorkIdentity) pywintypes.com_error: (-2147352562, 'Invalid number of parameters.', None, None) 一些更多细节: 我可以对工作簿执行其他命令,例如wb.Worksheets.Add()并设置xl.Visible=True来查看工作簿。 甚至做wb.Save()但是不能做一个wb.SaveAs()

Python / Excel:以编程方式closuresOffice Excel兼容性检查程序

我需要访问的数据文件正在以xlsx格式生成,但我需要它以xls格式来达到我的目的。 我可以使用win32com.client打开文件,但是保存不能完全完成,因为popup的兼容性检查器对话框会通过xlsx – > xls格式通知您丢失格式化/function。 这里的代码,目前不允许我保存文件执行挂起等待对话框closures,任何帮助将不胜感激: excel = win32com.client.Dispatch('Excel.Application') excel.DisplayAlerts = False in_file = u"C:\\Path\\to\\infile\\infile.xlsx" out_file = u"C:\\Path\\to\\outfile\\outfile.xls" wb = excel.Workbooks.Open(in_file) wb.CheckCompatibility = False wb.DoNotPromptForConvert = True wb.SaveAs(out_file, FileFormat=56) #Execution hangs here wb.Close() excel.Quit() 我见过其他类似的post,提到我已经在这个脚本中设置的方法和属性。 我也修改了我的registry值ShowCompatDialog = 0。

Python Excel图表typespywintypes.com_error

我的代码的以下片段正常工作。 它创build一个图表并将其设置为xlLine chart = ws.Shapes.AddChart().Select() xl.ActiveChart.ChartType = win32com.client.constants.xlLine xl.ActiveChart.SetSourceData(Source=ws.Range(range)) 但是,如果我运行这个代码 chart = ws.Shapes.AddChart().Select() xl.ActiveChart.ChartType = win32com.client.constants.xlColumn xl.ActiveChart.SetSourceData(Source=ws.Range(range)) 我得到以下错误 Traceback (most recent call last): File "C:\Users\Simon\workspace\python\pyexcelchart\pyexcelchart.py", line 52, in <module> excelChart(workbook=wbk,worksheet="Sheet1",range="A1:B6") File "C:\Users\Simon\workspace\python\pyexcelchart\pyexcelchart.py", line 46, in excelChart xl.ActiveChart.ChartType = win32com.client.constants.xlColumn File "C:\WinPython-32bit-2.7.3.3\python-2.7.3\lib\site-packages\win32com\client\__init__.py", line 512, in __setattr__ d.__setattr__(attr, value) File "C:\WinPython-32bit-2.7.3.3\python-2.7.3\lib\site-packages\win32com\client\__init__.py", line 474, in __setattr__ self._oleobj_.Invoke(*(args + […]

在Python中使用多个Excel工作簿

使用win32com,我有两个工作簿打开。 你怎么知道哪一个是主动的? 你如何改变哪一个是活动的? 你怎么能closures一个而不是另一个? (不是Application.Quit())