Tag: win32com

使用Python进行Excel win32com编程。 传递参数来运作

我怀疑这个问题有一个简单的答案,但我找不到任何地方! 我正在写一个函数来在Excel中绘制大量的数据,而我正在用Python控制绘图。 我已经生成了所有的图表,每张图表都是自己的图表,但是它们都是乱序的。 这个VBA代码是: Sheets("Chart1").Move After:=Sheets(3) 这将采取“Chart1”并在第三张纸后移动。 我如何在Python中做到这一点? 我知道代码是沿着以下方向的: xlChart.Move(Before,After) 我如何告诉python Before和After参数? 我想最重要的是我还没有想出如何在win32com编程中传递参数。 提前感谢任何帮助!

使用Python中的win32com加载Excel加载项

我从这里的各种问题中看到,如果使用Python打开Excel的实例: xl = win32com.client.gencache.EnsureDispatch('Excel.Application') xl.Visible = True wb = xl.Workbooks.Open('Test.xlsx') 然后它不加载默认加载项。 我试着强迫我的加载项加载,而不是运行: xl = win32com.client.gencache.EnsureDispatch('Excel.Application') xl.Visible = True addin = xl.Workbooks.Open('C:/path/addIn.xll') wb = xl.Workbooks.Open('Test.xlsx') 但是,当我这样做时,将打开一个Excel实例,并收到一条安全消息,要求我validation是否要打开此加载项。 如果我单击“仅此会话启用此加载项”Excel立即closures,并不会打开我所需的xlsx文件。 有没有人有任何想法如何强制插件加载,然后让我打开我的文件? 非常感谢您的帮助!

Python的win32com在Word中换行的方法?

我需要编写一个函数,用来包装活动Excel工作簿所有工作表的内容。 除了必要的方法外,我已经写好了一切。 我无法在任何地方find它。 有没有人有这方面的知识? from win32com.client import Dispatch excel = Dispatch('Excel.Application') def main(): WordWrapColumns() def WordWrapColumns(): excel.ActiveWorkbook.Save() filename = excel.ActiveWorkbook.FullName wb = excel.Workbooks.Open(filename) #Activate all sheets active_sheets = wb.Sheets.Count for i in range(0,active_sheets): excel.Worksheets(i+1).Activate() # Word wrap all columns in sheet # What command goes here???? #Save and close workbook wb.Save() wb.Close() excel.Quit() if __name__ […]

python从现有的xlsx导出图表

我有一个由python lib xlsxwriter创build的xlsx,里面有一个图表。 我的问题是如何使用Python代码导出此图表并保存为JPG图像? 我的Python代码将在CentOS上运行,我发现下面的代码,但似乎只能运行在Windows上: from win32com.client import Dispatch xlsApp = Dispatch("Excel.Application") xlsWB = xlsApp.Workbooks.Open(r'/tmp/test/code.xlsx') xlsSheet = xlsWB.Sheets("sheet1") mychart = XlsSheet.Charts(1) #'1' is the index of the chart object in the wb mychart.Export(Filename=r'/tmp/test/MyExportedChart.png') 任何想法 ?

在Excel中使用win32com或xlrd或数据库在MySQL中的数据库

我开发了一个网站,其中的网页只是HTML表格。 我也通过扩展python的SimpleHTTPServer开发了一个服务器。 现在我正在开发我的数据库。 每个页面上的大多数表格内容都是静态的,不需要触摸。 但是,每个表(即页面)有一列需要进行编辑和存储。 这些值只是用户可以input的文本。 用户通过html textareasinputhtml textareas ,这些html textareas通过javascript附加到表格中。 数据库将存储键/值对,其中值是用户input的文本(至less现在)。 现在的情况 因为我的网页的原始格式是xlsx文件,我select使用Excel工作簿作为我的数据库,基本上只是镜像显示的网页的HTML表(页)。 我通过win32com连接到excel工作簿。 每次载入表(页面)时, javascript会遍历html textareas,并向服务器发送一个单独的请求,以便从数据库中载入相应的文本。 目前这种方法的工作,但速度非常缓慢。 我试图尽可能地优化所有的东西,我相信速度限制是win32com的直接后果。 因此,我看到了四种可能的途径: 把我当前的win32comfunctionreplace成xlrd 尝试加载一个表(页面)的所有html textareas一次通过一个服务器调用使用win32com的数据库 切换到类似sql东西(可能使用mysql,因为它很简单,足够强大,可满足我的需求) 使用xlrd但像(2)中那样对每个表(页面)调用一次服务器, 我的计划,build立这个function是两天左右。 有没有人有任何想法在时间花费代码与这些方法的速度权衡? 如果有人有更好的/更简化的方法,请分享!

对话框通过python在excel中处理

我自动化一些活动使用Excel中的Excel文件的Excel插入一些数据在Excel中。 我试图在执行所需的操作后保存excel文件,但出现一个对话框,其中包含需要用户注意的选项(“是”或“否”)。 我的脚本应该从Python中select对话框的选项“是”。 但是,无法find适当的方法来做到这一点。 请有人可以提出build议来解决这个问题。 谢谢,

通过Jenkins进行Python Excel自动化

我正在使用win32 python库来自动生成一个Excel文档。 我也使用Jenkins来运行将生成文档的Python脚本。 我遇到了“另存为”function的问题。 每当我从我的本地机器运行python脚本,它会生成并保存文档成功。 但是,当我从jenkins触发脚本时,在“SaveAs被调用”时失败。 这是我非常简单的Python代码: import win32com.client as win32 from win32com.client import Dispatch from win32com.client import constants excel = win32.gencache.EnsureDispatch('Excel.Application') excel.Visible = False excel.DisplayAlerts = False wb = excel.Workbooks.Add() wb.SaveAs(r"D:\HelloWorld.xlsx") excel.Quit() 正如你可以看到在这两个图片,python调用是相同的,但它只能在我的本地机器上成功。 笔记: 我尝试将jenkins用户更改为SYSTEM,然后更改为LOCAL ACCOUNT,但是没有任何工作。 我也尝试chmod文件目录,但也没有工作。 更新:我需要在Excel工作表中添加checkbox,并据我所知,这是唯一可能通过comtypes库或pywin32库。 如果还有其他的select,请指导我。

如何使用win32com.client将xls重新保存到xlsx时禁用/ autoanswer关于macros/ VB项目的对话框?

当使用这个代码时: import win32com.client as win32 input_files = os.listdir(parent_dir) input_files = [parent_dir + i for i in input_files if i.endswith('.xls') and not i.endswith('.xlsx')] for input_file in input_files: if not os.path.isfile(input_file.replace('.xls', '.xlsx')): excel = win32.gencache.EnsureDispatch('Excel.Application') wb = excel.Workbooks.Open(input_file) wb.SaveAs(input_file + "x", FileFormat=51) # FileFormat = 51 is for .xlsx extension wb.Close() # FileFormat = 56 is for […]

无法使用openpyxl或win32com将图像导入excel标题

我需要以自动方式将图像文件导入到Excel头文件中; 我不相信这是可能的,但我认为这可能是可行的win32com,虽然我无法得到它的工作。 有没有人知道一个办法做到这一点? 我发现了一个Excel中成功执行的excelmacros: Sub InsertPicture With ActiveSheet.PageSetup.LeftHeaderPicture .FileName = "C:/Users/bharris/Desktop/my_image_file.png" .Height = 45 .Width = 30 .CropTop = -30 End With ActiveSheet.PageSetup.LeftHeader = "&;G" 所以我尝试从Python使用win32com实现: excel = DispatchEx('Excel.Application') excel.Visible = True wb=excel.Workbooks.Open(my_excel_file.xlsx') ws = wb.Sheets(1) ws.PageSetup.LeftHeaderPicture.FileName ="my_image_file.png" ws.PageSetup.LeftHeader = "&;G" wb.SaveAs('my_excel_file.xlsx') wb.Close(True, 'my_excel_file.xlsx') excel.Application.Quit() 但它给了我: raise AttributeError("Property '%s.%s' can not be set." % (self._username_, […]

如何打开用win32com写python保留excel文件?

我试图打开一个写保护ms excel 2007文件在python中使用win32com – 我知道密码。 我可以用用户input的密码打开它进入excel对话框。 我希望能够在没有任何用户交互的情况下打开文件。 我已经尝试了以下,但它仍然popup对话框。 app.Workbooks.Open("filename.xls", WriteResPassword="secret") 任何想法我做错了,请吗? 谢谢, 戴夫。