Tag: win32com

Python – 使用win32com.client将Excell单元格范围格式化为表格

我试图编写一个函数,select工作表中的所有非空单元格,调整列的宽度内容,并格式化为表格。 我卡在最后一点,这是我目前的代码: import win32com.client from win32com.client import constants f = r"D:\Project\test_copy.xlsx" exc = win32com.client.gencache.EnsureDispatch("Excel.Application") exc.Visible = 1 exc.Workbooks.Open(Filename=f) exc.ActiveSheet.UsedRange.Select() exc.Selection.Columns.AutoFit() exc.ActiveSheet.ListObjects("Table1").TableStyle ="TableStyleLight8" 问题在于最后一行。 我不知道该怎么做,因为错误信息是非常神秘的。 Google在这方面没有太多帮助。 *snip* line 80, in __call__ ret = self._oleobj_.InvokeTypes(0, LCID, 2, (9, 0), ((12, 1),),Index pywintypes.com_error: (-2147352567, 'Exception occurred.', (0, None, None, None, 0, -2147352565), None) 我真的很感谢这里的一些帮助…

WIN32COM将多个工作表保存/导出为PDF

我想在工作簿中select多个工作表(按照特定顺序),并使用win32com将其作为单个PDF导出。 我试过了: wb_HC.Sheets(['sheetname1','sheetname2']).ExportAsFixedFormat(0, workdir+'\\'+run_date+'_MD_Summary.pdf') 但是这不起作用。 我知道,在VBA表可以称为一个表格数组: Array(sheets(1), sheets(2)) 但我认为这不等同于Python中的list()。

Pywin32直接使用像这样的列和行将在VBA中完成

我开始将一些VBA代码迁移到Python中,因为它给了我更多的资源。 不过,我有类似的方式工作的麻烦。 我想清除一些列,但是我不能直接使用工作表的属性列。 我必须做这样的周转(完整的代码): import win32com.client as win32 xl = win32.gencache.EnsureDispatch('Excel.Application') xl.Visible = True wb = xl.Workbooks.Open(r'Test.xlsx') sh = wb.ActiveSheet xl.ScreenUpdating = True last_col = sh.UsedRange.Columns.Count last_row = sh.UsedRange.Rows.Count my_range = sh.Range(sh.Cells(1, 1), sh.Cells(last_row, 4)) my_range.Select() xl.Selection.ClearContents() 所以,我想做什么,就像在VBA: Columns("A:D").Clear 有什么办法用Python来处理行和列,而不仅仅是使用范围?

Python读取零单元格的Excel单元格数据

我正在使用win32com客户端与python来操纵Excel 。 我能够按预期提取数据。 但是,整数单元格像11001.0那样带有十进制数,我期待没有小数。 for row in range(1, totalRows+1): for col in range(1, totalColumn+1): strData = ws.Cells(row, col).value print(strData) 结果: 2123448947.0 8676.0 原始值: 2123448947 8676

Python:根据之前单元格中的公式自动填充Excel中的单元格

使用Python和win32com: 我有一个Excel文件中的单元格,单元格A5:A54。 我正在尝试按照相同的公式填充单元格A55:A61。 我在网上search,发现这个: http : //pythonexcels.com/python-excel-mini-cookbook/ 从链接引用:“此脚本使用Excel的自动填充function来检查单元格A1和A2中的数据,然后通过A10自动填充单元格的其余列。 链接中的代码: # # Autofill cell contents # import win32com.client as win32 excel = win32.gencache.EnsureDispatch('Excel.Application') wb = excel.Workbooks.Add() ws = wb.Worksheets("Sheet1") ws.Range("A1").Value = 1 ws.Range("A2").Value = 2 ws.Range("A1:A2").AutoFill(ws.Range("A1:A10"),win32.constants.xlFillDefault) wb.SaveAs('autofill_cells.xlsx') excel.Application.Quit() 所以我尝试了在我的代码中: from win32com.client import Dispatch from win32com.client import constants import os from Tkinter import Tk from tkFileDialog import […]

python将数据添加到现有的Excel单元格Win32com

假设我有A1作为工作簿中唯一的单元格,它是空白的。 我想我的代码添加“1”“2”和“3”,所以它说“1 2 3” 截至目前我有: NUMBERS = [1, 2, 3, 4, 5] ThisSheet.Cells(1,1).Value = NUMBERS 这只是将第一个值写入单元格。 我试过了 ThisSheet.Cells(1,1).Value = Numbers[0-2] 但是这只是把最后的价值在那里。 有没有办法让我添加所有的数据呢? 这些信息将始终是string格式,我需要使用Win32Com。 更新:我做到了 stringVar =','.join(str(v)for v in LIST) 更新:这个.join完美地为NUMBERS列表。 现在我试着把它归结到另一个看起来像这样的列表 LIST=[Description Good\nBad, Description Valid\nInvalid] 如果我打印LIST [0]结果是 Description Good Bad 这是我想要的。 但是,如果我在这个上使用.join,它会打印 ('Description Good\nBad, Description Valid\nInvalid') 所以对于这个我需要它打印,就像我做LIST [0]和LIST [1]

Python win32com当“可见”设置为False时,如果光标位于单元格中,Excel.Application将抛出错误

在此先感谢您的帮助/build议。 我试图创build一个程序,使用tkinter作为GUI来收集信息,然后使用win32com将该信息发送到现有的Excel文件。 在我的Tk窗口中,我有一个button,使用Com对象的'visible'属性来切换excel文件的可见性。 它工作正常,除非光标在单元格内仍处于活动状态,当您尝试再次隐藏文件(将'visible'设置为False)。 当我这样做,它会抛出一个AttributeError。 有没有解决办法? 这里是我用作我的button的命令的代码: def buttonShow(XL): XL.visible ^= 1 编辑: 这是build议作为以前的答案,但问题和解决scheme是在C#中,而我需要在Python中的解决scheme。 问题是相似的,但我相信我在Python中find的解决scheme无论如何都比较简单。

如何使用python将xls转换为xlsx?

我已经尝试过所有的方法, 如何将xls转换为xlsx 。 但是,他们都没有为我工作,可能是因为我是新的python和编程。 所以我想出了自己的解决scheme。 利用Win32com,我可以将所有表单从xls文件移动到xlsx文件。 看到我的答案在下面。 我希望这会帮助其他人。

使用win32com的excel格式不会自动更新

我正在尝试使用win32com在excel中生成报告。 我可以把信息input到正确的单元格中。 但是,我的某个列包含一个ID号,而Excel将其格式化为一个数字(以科学记数法显示)。 我已经尝试使用sheet.Range(cell).NumberFormat = '@'作为文本格式化单元格,它将工作,但只会在实际的Excel文件中select单元格后更新。 无论我在input数据之前还是之后格式化单元,都会发生同样的情况。 有没有办法使用win32com刷新单元格格式? 我希望一旦com实例变得可见,就可以正确显示ID号。

inputWin32com参数

在python中我无法使用win32COM获取单元格的完整地址: cell.Address(external=True) get error while cell.Address only gives string 1.如何获得configuration获取完整的单元格地址? 2.我想用Python以编程方式进行公式评估吗? 有无论如何通过win32COM访问这些function?