Tag: win32com

从Python运行Excelmacros(但Excel进程保留在内存中)

用下面的python方法,我调用了一个Excelmacros。 当我得到这个工作时,我很高兴,但是我想知道每当我执行这个时,我可以看到一个Windows临时/locking文件与我使用macros从.XLA同名。 class XlaMakeUnmake: __configFile = 'xla_svn.cfg' __vbaTools = 'makeProtected.xla' __entries = {} def __init__(self): self.__readConfig() def __newDirs(self, dir): try: os.makedirs(dir) except OSError, e: if e.errno != errno.EEXIST: raise ### WILL ONLY WORK FOR UNPROTECTED ''' filePath: path of XLA to unmake outputDir: folder in which the lightweight xla and its components will be pushed […]

用win32com添加Excel文本框

我正在尝试将Excel文本框添加到工作表中…在Excel GUI中使用的典型快捷键是Alt + N X ,然后单击我想要的文本框的位置; 然而,我没有访问COM浏览器,这让我猜测微软在Python的win32com隐藏文本框API的win32com … from win32com import client excel=client.Dispatch("Excel.Application") excel.Visible=True book=excel.Workbooks.Open("c:/Users/dpennington/Desktop/Blank.xls", False, True) sheet=book.Worksheets(2) 如何使用Python的win32com api添加一个文本框(即在Excel GUI中: Alt + N X )? (工作表中的具体位置取决于您…)

如何在代码中改变date系统

我有两个excel电子表格需要整理。 一个使用1900基准年系统,另一个使用1904.我用数据填充1904电子表格,然后拉入1900页。 我想将date系统更改为基于1900年填写的第一张表,以便当我拉另一张表时它不会搞砸date。 我无法find神奇的单词,以编程方式在Excel中更改此设置。 我会采取任何语言,任何模块(但我使用win32com和python)。 我可以从那里弄清楚。 这甚至有可能吗? 以下是手动执行的说明: http://answers.microsoft.com/en-us/office/forum/office_2007-excel/why-does-excel-2007-change-dates-when-i-copy-and/b0544a7f-bd82-4b5a-a843- e6ae22f2ef63

用win32com python打开多个excel文件

有没有办法使用os.walk或glob来同样简化? from win32com.client import Dispatch inputwb1 = "D:/apera/Workspace/Sounding/sounding001.xlsx" inputwb2 = "D:/apera/Workspace/Sounding/sounding002.xlsx" Sheet = 'OUTPUT' excel = Dispatch("Excel.Application") source = excel.Workbooks.Open(inputwb1) source.Worksheets(Sheet).Range('F1:H500').Copy() source.Worksheets(Sheet).Range('I1:K500').PasteSpecial(Paste=-4163) source = excel.Workbooks.Open(inputwb2) source.Worksheets(Sheet).Range('F1:H500').Copy() source.Worksheets(Sheet).Range('I1:K500').PasteSpecial(Paste=-4163) 因为如果我想写几百个这个东西,这个东西会占用太多的空间。 感谢您的帮助提前

使用Python使用Range函数创build数组并写入excel列

我想创build一个数据容器,在我的python脚本(基于计算),然后写在excel使用win32com客户端和range()函数的列中。 我可以成功做到这一行,但不能做一列。 我基本上想要做的硬编码代码如下所示: import win32com.client as win32 from win32com.client import Dispatch Excel=Dispatch('Excel.Application') wb = Excel.ActiveWorkbook ws = wb.ActiveSheet data_container = [5],[6],[7],[8],[9] ws.Range(ws.Cells(11,9),ws.Cells(15,9)).Value = (data_container) 对我来说,棘手的部分是创build一个data_container,我可以在飞行中创build。 我知道关于元组,数据字典和列表的stackoverflow上有很多,但我不能解决它,并感到困惑(如果我看到警告“元组是不可变的”一次!!!!!!)。 每当我创build如下所示的东西时,它只是输出所有单元格中的第一个项目(即在所有单元格的下面填充5)。 data_container = [] data_container.append(5) data_container.append(6) data_container.append(7) data_container.append(8) data_container.append(9) ws.Range(ws.Cells(11,9),ws.Cells(15,9)).Value = (data_container) 我可以循环并写入每个单元格,但是由于时间限制,不想这样做。 我知道有可能使用其他python插件,但我希望这可以在许多计算机上使用,不一定有所有这些插件,可以防止人们使用我的脚本………我喜欢简单使用win32com设置,并有大多数项目工作除了这一点。 理想情况下,我想有一个字典/列表/matrix/数组中存储的列数……并能够写入一个范围引用数据容器的某个部分。 例如: ws.Range(ws.Cells(11,9),ws.Cells(15,9)).Value = (data_container[0]) data_container [0]包含[5],[6],[7],[8],[9] …… 我想要做的最终目的是将多个列(不一定按顺序)读入数据容器,进行修改,然后写回多个列(不一定按顺序)。 我非常感谢所有的构build块,目前可能是堆栈溢出,我只是无法把它们拉到一起,我试图把这一切都解决了。 任何帮助表示赞赏。

在Python中创buildExcel超链接

我使用win32com来修改Excel电子表格(同时读取和编辑)我知道有其他模块可以做一个或另一个,但对于我正在做的应用程序,我需要它读取和处理在相同的时间。 最后一步是创build一个超链接的path名称。 这是我迄今为止的一个例子: import win32com.client excel = r'I:\Custom_Scripts\Personal\Hyperlinks\HyperlinkTest.xlsx' xlApp = win32com.client.Dispatch("Excel.Application") workbook = xlApp.Workbooks.Open(excel) worksheet = workbook.Worksheets("Sheet1") for xlRow in xrange(1, 10, 1): a = worksheet.Range("A%s"%(xlRow)).Value if a == None: break print a workbook.Close() 我发现一些使用win32com读取超链接的代码: sheet.Range("A8").Hyperlinks.Item(1).Address 但不是如何设置超链接 有人可以帮我吗?

使用Win32com从Python内部处理Excel消息框

我试图处理一些本应该是xls文件的文件,但事实certificate它们是别的东西(根据我在python-excel板上获得的一些帮助,这些文件是Web Archive文件或(单文件网页(* .mht ,* .mhtml))。我可以使用Excel打开这些文件,但是我得到一条消息,在我可以继续前进之前,必须先解除消息,消息是: – 正在尝试打开的文件filename.xls的格式与由文件扩展名指定。在打开文件之前,确认文件没有被修复并且来自可信来源。是否要打开文件? 如果我点击是,文件打开,它看起来像一个Excel工作簿。 一些表名被截断。 果然,当我点击保存为默认格式,显示的是单个文件的网页。 现在,如果我保存并selectExcel 97-2003格式,重命名为我的新名称,并点击保存button该文件,然后打开与Excel中,没有未来的问题。 我一直在尝试弄清楚如何编写一些代码来打开并保存这些文件作为真正的xls文件,所以我不需要有人在海外打开并保存它们。 我已经非常接近了,但最后一个问题仍然存在,当我用一个新的文件格式保存它时,我得到了一个警告框,警告我会有一些失真的保真度。 我不知道如何抑制它,并接受失真的保真度? 这里是补丁拼凑在一起,似乎工作 import win32com.client xl=win32com.client.Dispatch('Excel.Application') xl.visible=0 # I have noticed that if I don't set visible to 0 I can't get any response srce=xl.Workbooks.Open(r'c:\testdd.xls') # testdd is my file that is evidently really not an excel file srce.SaveAs(r'c:\newtttxt2.xls',FileFormat=1) # this is […]

如何用Excel使用Python绘制图表?

您好,我打算用xlsx文件中的数据绘制图表。 为了保持风格,我必须在Excel中绘制它。 我发现了一个名为win32com的包,它可以支持在win32平台上用python操作excel文件,但是我不知道文件在哪里。 另一个类似的问题是如何改变单元格的样式,如字体,背景色? 所以,也许我想知道的是文档,你知道如何钓鱼比鱼更有用….而且一个例子是更好的。

如何通过使用“win32com.client作为win32”知道excel的使用行数和列数

我想知道如何使用win32com.client作为win32find使用的行数和使用的列数 我已经写了这样的代码 excel = win32.gencache.EnsureDispatch('Excel.Application') excel.DisplayAlerts = False wb = excel.Workbooks.Open('path') ws = wb.Worksheets("Global") 问候, G Somesh

如何查找最后一行是否使用Python Win32com在Excel中查找特定列的值

我有一个Excel文件,我使用python Win32com来操作它。 如何检查最后一行是否在特定列中有值? 当我尝试的时候,是28,而不是23(最后一行的值不是空的) used = sht1.UsedRange nrows = used.Row + used.Rows.Count – 1