Tag: win32com

使用python处理excel时出错

而我的脚本正在更新一个Excel的同时,如果我要去做任何其他工作手动与另一个Excel错误发生我使用调度 from win32com.client import Dispatch excel = Dispatch('Excel.Application') excel.Visible = True file_name="file_name.xls" workbook = excel.Workbooks.Open(file_name) workBook = excel.ActiveWorkbook sheet=workbook.Sheets(sheetno) 我geting像这样的错误(,com_error(-2147418111,'被拒绝被叫',无,无) 是否有任何方法可以克服它..我可以更新另一个Excel没有geting错误..

如何粗体显示Excel单元格中的一部分string与Python

我正在使用win32com来填写Excel电子表格和一些分析信息。 我有一个单元格,我想要在这种forms: 这是问题描述: 这是您运行修复它的命令 我似乎无法弄清楚如何将文本与Python混合格式的单元格。 import win32com.client as win32 excel = win32.gencache.EnsureDispatch('Excel.Application') wb = excel.Workbooks.Add() ws = wb.Worksheets("Sheet1") excel.Visible=True sel = excel.Selection sel.Value = "this is the command you run to fix it" sel.Font.Bold = True ws.Cells(1,1).Value = 'This is the problem description' + sel.Value #makes the whole cell bold ws.Cells(1,1).Value = "{} {}".format("this is […]

在Excel COM中使用Python和win32com访问启动常量

我使用python 2.7 win32com模块从Python加载MS Excel工作表: book = xlApp.Workbooks.Open("myFile.xls") sheet = book.Sheets(1) 范围,工作表等许多方法和属性使用像XlDirection,XlFillWith等枚举。 这些定义常量,如xlDown,xlUp,xlFillWithContents等。这些常量是从win32com可用,以便我可以做,例如: column = outputsSheet.Range("I5:I150") lastRow = column.End(xlInterop.xlDown) print "Last row:", lastRow.Row 这是行不通的,因为xlInterop没有定义,有没有办法使用win32com访问它? 通过反复试验发现xlDown这样的常量值是不太实际的。

Python Win32Com&Excel.Application无法在计划程序上保存

我遇到了使用win32com和任务计划程序的问题。 即使脚本执行成功,其他方面也不会发生Excel文件保存操作 。 这是在自动化机器上运行; 没有活动的login会话。 看下面的事实。 我是Win32COM新手,所以我可能不知道什么时候以及如何在Python中使用它。 背景 我有一个Python脚本,通过任务计划程序运行一夜,该程序从内部数据库收集数据并将其输出到报告中。 原来的脚本使用csv来输出数据,但我了解到win32com使用Excel VBA命令创buildxlsx文件。 我使用代码扩展了现有的chronjob以包装使用pymysql现有数据库操作: import win32com.client as win32 try: excel = win32.gencache.EnsureDispatch('Excel.Application') excel.DisplayAlerts = False wb = excel.Workbooks.Add() basesht = wb.Sheets('Sheet1') except: #E-mail notification of failure. sys.exit() 该脚本经历了几分钟的数据库操作。 一些用csv导出为.csv文件,另外一些则创build一个新的表格并使用下面的代码导出采集的数据: #For Each Report in Report Set (DB = Object extending pymysql) resultSet = db.qryfetchall() headers = list(resultSet[0].keys()) r, […]

用COM接口打印Excel工作表

我已经用python编写了一堆xlwt的Excel表格。 这一切都很好,但现在我需要将它们全部转换为PDF格式。 我一直在试图用pywin32和com界面来做到这一点。 我可以像这样变得有点接近: import win32com.client o = win32com.client.Dispatch("Excel.Application") o.Visible = 1 wb = o.Workbooks.Open('foo.xls') ws = wb.Worksheets[1] ws.printout() 但不幸的是,当我这样做时,它popupAdobe打印机屏幕询问我要保存PDF的path,如果我必须input或单击确定每个页面,它以编程方式打败它的目的。 有什么办法,我可以在Python代码而不是手动input这个path? 有没有更好的方法将这些工作簿中的每个工作表转换为pdf? 亚历克斯,谢谢

如何使用Python win32com调用Excel VBA函数和子文件?

我的Excel工作簿包含类似于下面的VBA子和macros; 他们坐在Module1中。 如何使用Python win32com模块调用它们? Public Sub setA1(ByVal s As String) ThisWorkbook.ActiveSheet.Range("A1").Value = s End Sub Public Function getA1() As String getA1 = ThisWorkbook.ActiveSheet.Range("A1").Value End Function 提前谢谢了!

Python:在工作表中刷新数据透视表

我正在构build一个python脚本,它允许我打开一个Excel 2010工作表并打印出来。 我得到了大部分的方式 import win32com.client office = win32com.client.Dispatch("Excel.Application") wb = office.Workbooks.Open(r"path\to\excel\file\to\print.xlsm") count = wb.Sheets.Count for i in range(count): ws = wb.Worksheets[i] pivotCount = ws.PivotTables().Count for j in range(1, pivotCount+1): #TODO code to refresh each pivot table ws.PrintOut() print "Worksheet: %s – has been sent to the printer" % (ws.Name) 正如你所看到的,我仍然缺less工作表中数据透视表的刷新。 用于刷新的VBA代码是: ActiveSheet.PivotTables(1).PivotCache.Refresh 我似乎无法将代码分解成python win32com语法。 我得到的最接近的是: […]

使用Python上的win32com无法完全closuresExcel

这是我的代码,我发现很多VBA ,.NET框架的答案,很奇怪。 当我执行这个时,Excelclosures。 from win32com.client import DispatchEx excel = DispatchEx('Excel.Application') wbs = excel.Workbooks wbs.Close() excel.Quit() wbs = None excel = None # <– Excel Closes here 但是,当我做了以下,它不closures。 excel = DispatchEx('Excel.Application') wbs = excel.Workbooks wb = wbs.Open('D:\\Xaguar\\A1.xlsm') wb.Close(False) wbs.Close() excel.Quit() wb = None wbs = None excel = None # <– NOT Closing !!! 我发现一些可能的答案堆栈溢出问题Excel进程仍然打开后互操作; 传统的方法不工作 […]