Tag: win32com

Python win32com workbook.SaveAs'参数数量无效'。 错误

我已经成功运行了几个月的Python脚本。 该脚本使用win32com命令编辑模板excel电子表格,然后将编辑的工作簿保存为新的.xlsx文件。 results_path = "C:\\Users\\…\\" results_title = results_path + input + "_Results.xlsx" if os.path.exists(template_path): xl= win32com.client.gencache.EnsureDispatch("Excel.Application") xl.Application.DisplayAlerts = False xl.Workbooks.Open(Filename= template_path) xl.Application.Cells(2,6).Value = input r = 17 for row in y_test: row = str(row) row = row[1:] row = row[:-1] xl.Application.Cells(r,2).Value = row r += 1 # xl.Application.CalculateFullRebuild # xl.ActiveWorkbook.SaveAs(Filename = save_title) # time.sleep(20) r […]

Python:使用win32com(或其他模块)来调整excel文件的打印属性

我需要打印一个Excel表,并需要使用某种Python脚本。 到目前为止,我已经在我的脚本中使用win32com,我也完成了使用下面的代码打印输出: import win32com.client o = win32com.client.Dispatch("Excel.Application") o.Visible = 1 wb = o.Workbooks.Open(r'C:\test.xlsx') ws = wb.Worksheets[1] ws.PrintOut() 不幸的是,在我实际打印Excel表单之前,我需要调整此表单/文件的打印设置:将格式更改为横向并将其更改为小/窄边距。 我发现这个网站可能包含我所需要的: https : //msdn.microsoft.com/en-us/library/aa220363(v=office.11​​).aspx 不幸的是到目前为止,我还没有能够改变所需的打印属性。 我希望有人能帮助我,或者至less让我走向正确的方向。

Python win32com:Excel将图表types设置为Line

这个VBAmacros的作品: Sub Draw_Graph() Columns("A:B").Select ActiveSheet.Shapes.AddChart.Select ActiveChart.SetSourceData Source:=ActiveSheet.Range("$A:$B") ActiveChart.ChartType = xlLine End Sub 这Python(近)等效几乎工作: from win32com import client excel=client.Dispatch("Excel.Application") excel.Visible=True book=excel.Workbooks.Open("myfile.csv", False, True) sheet=book.Worksheets(1) chart=book.Charts.Add() chart.SetSourceData(sheet.Range("$A:$B")) chart.ChartType=client.constants.xlLine 除了最后一点 – 我不能让图表types为“xlLine”(普通线图)。 有任何想法吗 ?

Python Makepy与Office 2013(办公室15)

我在Office 2010中使用python和excel,在那里没有问题。 我使用python的makepy模块来绑定到txcel com对象。 然而,在另一台电脑上,我安装了office 2013,当我启动makepy时,没有列出excel选项(与office 2010中“Microsoft Excel 14.0 Object Library”由makepy列出相反)。 我在registry中search了“Microsoft Excel 15.0 Object Library”,它就在那里。 我试图使用: makepy -d 'Microsoft Excel 15.0 Object Library'但没有奏效。 帮助将不胜感激。 谢谢。

迭代Excel列A,使用Python win32写入B列

我有一个Excel电子表格。 我想遍历该电子表格的列A,并使用string中列A的值写入列B. 我已经成功地使用Python在Excel中进行复制和粘贴,并且已经创build了一些脚本,现在这个脚本正在呈现一个非常激动人心的状态。 编辑:我需要它停止一旦没有更多的值在A列。 import win32com.client as win32 excel = win32.gencache.EnsureDispatch('Excel.Application') excel.Visible = 1; wb = excel.Workbooks.Open("C:\file.xls"); ws = wb.Worksheets("Sheet1") 我写了下面的代码应该看起来像什么,但与Python(初学者)斗争,我不知道如何设置它: starting read cell = A1 starting write cell = B1 for cell in column A: ws.Range("B1").Value = str("W"&TEXT(A1,"00000")) 所以,如果我的Excel电子表格看起来像这样: AB 1 2 那么结果将是: AB 1 W00001 2 W00002 (注意我在这里使用excel公式来写)。 有什么build议么?? 感谢大家!

Range类的AutoFilter方法失败(Dispatch vs EnsureDispatch)

此代码失败,错误:“范围类的自动过滤方法失败” from win32com.client.gencache import EnsureDispatch excel = EnsureDispatch('Excel.Application') excel.Visible = 1 workbook = excel.Workbooks.Add() sheet = workbook.ActiveSheet sheet.Cells(1, 1).Value = 'Hello world' sheet.Columns.AutoFilter() 该代码也失败,虽然它曾经工作: from win32com.client import Dispatch excel = Dispatch('Excel.Application') excel.Visible = 1 workbook = excel.Workbooks.Add() sheet = excel.ActiveSheet sheet.Cells(1, 1).Value = 'Hello world' sheet.Columns.AutoFilter()

如何从python调用macros时停止stream行

我有一个Excel文件中的macros代码,我用python代码调用这个macros,但每次我调用这个代码,它使我popup(下面),我想避免,因为代码是从远程机器执行和Excel文件popup不可访问给用户。 码: import win32com.client def insert_column(): fName= 'F:\\Reports\\Logs\\PERF_RESULTS.xlsm' xlApp = win32com.client.Dispatch("Excel.Application") fTest = xlApp.Workbooks.Open(fName,ReadOnly=1) macName = fTest.Name + '!' +'Insert_Column' xlApp.Application.Run(macName) xlApp.Application.Save() xlApp.Application.Quit() xlApp = None

将Excel工作表添加到工作簿结束

我正在尝试将excel工作表添加到工作簿的末尾,为第一个工作表保留一个摘要。 import win32com.client Excel = win32com.client.DispatchEx('Excel.Application') Book = Excel.Workbooks.Add() Excel.Visible = True Book.Worksheets(3).Delete() Book.Worksheets(2).Delete() Sheet = Book.Worksheets(1) Sheet.Name = "Summary" Book.Worksheets.Add(After=Sheet) Sheet = Book.Worksheets(2) Sheet.Name = "Data1" 该代码尽pipe使用After=Sheet ,但将代码添加到左侧,而当我修改名为“Data1”的工作表时,它会覆盖名为“Summary”的工作表。 这与这个问题类似: 在Excel中将工作簿添加到工作簿的末尾(常规方法不起作用?) 但给定的解决scheme不适合我。

win32com – 在Excel工作表中写入string值

我正在使用win32com写一些从数据库中得到的date,而我的问题是我的值是'01',在Excel中只是'1' – 而不是'01'。 例: b = row[1] # b has the value 01 c = "-"+b+"-" # c has value -01- sheet.Cells(1,1).Value = b # I have in Excel '1' ; I've try with str(b), c – but is the same 我怎样才能解决这个问题,在Excel中把这个值识别为一个string,在这种情况下,01? 谢谢。

如何在python中特别粘贴excel

所以我试图从一个woorkbook复制大量的数据到另一个。 问题是源工作簿中的数据有一些奇怪的格式,所以我只想得到值。 我到目前为止的代码是这样的。 excel=win32com.client.Dispatch("Excel.Application"); excel.Visible = 1; source = excel.Workbooks.Open(Cali.xlsm'); copy = excel.Workbooks.Open(temp.xlsx'); sdata = source.ActiveSheet;cdata = copy.ActiveSheet; data=sdata.Range("89:89") sdata.Range("89:89",data.End(4)).Copy() 现在我可以使用 cdata.Paste() 但它也粘贴格式化 我发现 cdata.PasteSpecial() 但它也粘贴的格式。 任何人谁知道如何使用PasteSpecial(),所以它只复制值或有人知道一个更好的办法,我会非常明白。