我想知道如何通过使用win32com.client 作为 win32来查找已用行行数和已用列列数
我写过这样的代码
excel = win32.gencache.EnsureDispatch('Excel.Application')
excel.DisplayAlerts = False
wb = excel.Workbooks.Open('path')
ws = wb.Worksheets("Global")
Run Code Online (Sandbox Code Playgroud)
问候,
G萨梅什
我正在尝试使用 win32 使用 python 添加新注释到 excel。
import win32com.client as win32
excel = win32.gencache.EnsureDispatch('Excel.Application')
wb = excel.Workbooks.Open(r'C:\...\.xlsx')
ws = wb.Worksheets('sheet1')
ws.Cells(1,1).AddComment = "comment"
Run Code Online (Sandbox Code Playgroud)
--> 对象没有属性“AddComment”
你知道如何使用win32向excel添加新注释吗?谢谢你!
我正在尝试创建一个任务,该任务将在当前用户每次登录时运行。
我无法找到任何好的示例或文档。我发现的最好的例子是这个。
我试图换出TASK_TRIGGER_DAILY = 2的TASK_TRIGGER_LOGON = 9,去除tigger.DaysInterval = 100和使用类似关联的对象trigger.Delay,等找到这里。
它总是导致:
Pywintyps.com error: (-2147352567, ‘Exception occurred.’, (0, None, None, None, 0 -2147024809), None) on line 67: result = rootFolder.RegisterTaskDefinition(task_id, taskDef, TASK_CREATE_OR_UPDATE, "", "", RUNFLAGSENUM[run_flags] )
#username, password
Run Code Online (Sandbox Code Playgroud)
调用schtasks.exe有效,但这需要我想避免的 UAC 提升请求。
一个工作示例或一些相关的 Python 文档会很棒。我不够精通,C++无法将其全部翻译为Python.
正在寻找一种简单的方法来使用 Python 3 中的 win32com 获取 Excel 工作簿中的工作表列表。我希望避免迭代,但找不到执行此操作的函数。
我正在尝试处理一些应该是xls文件的文件,但事实证明它们是其他东西(根据我在python-excel板上获得的一些帮助,这些文件是Web存档文件或(单个文件网页(* .mht ,* .mhtml))。我可以使用Excel打开文件,但收到一条消息,然后才能继续前进,该消息是-您要打开filename.xls的文件格式不同于文件扩展名指定的文件。打开文件之前,请验证该文件未更正并且来自受信任的源。是否要打开文件?
如果我单击是,该文件将打开,看起来像是Excel工作簿。某些工作表名称被截断。果然,当我点击“另存为”时,显示的默认格式是单个文件网页。
现在,如果我使用SaveAs并选择excel 97-2003格式,请重命名为我的新名称,然后单击“保存”按钮,然后该文件将使用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 when the message box pops up
Run Code Online (Sandbox Code Playgroud)
我找到了对称为CheckCompatibility的属性的引用。它似乎是工作簿对象的属性。我想我不能以形式使用它
srce.CheckCompatibility='False'
Run Code Online (Sandbox Code Playgroud)
是因为我没有保存srce对象,而是保存了某种类型的副本?
回到地雷。
错误希望我尝试srce.CheckCompatibility ='False'时不成功
抱歉造成任何混乱
好吧,现在我比平时更困惑,这种行为很奇怪
srce=xl.Workbooks.Open(r'c:\testdd.xls') # I open the file
srce.CheckCompatibility='False' # I try to assign the attribute to srce
srce.SaveAs(r'c:\newtttxt7865.xls',FileFormat=1) …Run Code Online (Sandbox Code Playgroud) 我一直在努力为对象分配一个属性(或者它是一个实例)
xl=win32com.client.Dispatch('Excel.Application')
xl.Visible=0
srce=xl.Workbooks.Open('myexcelfile')
srce.CheckCompatibility='False'
Run Code Online (Sandbox Code Playgroud)
如果我在srce对象中查询其CheckCompatibility属性,我会收到'False'的响应
>>> srce.CheckCompatibility
False
Run Code Online (Sandbox Code Playgroud)
所以我天真地想,无论如何我都可以保存
srce.SaveAs(R'C:\newtttxt14.xls',的FileFormat = 1)
但是当我这样做时,兼容性检查器对话框出现了.我点击继续,文件保存,然后我再次检查兼容性.
>>> srce.CheckCompatibility
True
So I again try to set it and this time I am successful
srce.CheckCompatibility='False'
Run Code Online (Sandbox Code Playgroud)
我再次查询它:
>>> srce.CheckCompatibility
False
Run Code Online (Sandbox Code Playgroud)
现在,当我尝试保存文件时,不会出现兼容性检查器对话框,文件保存完全是我想要的.
在尝试以另一种格式保存文件之前,我需要确定能否设置srce的属性 - 这可能以其他方式发生吗?
谢谢
我正在尝试使用 python win32com 通过 Outlook 发送 HTML 网页。但是,我不知道如何配置添加附件调用以执行“插入为文本”方法。
有谁知道这是怎么做到的吗?
import win32com.client
from win32com.client import Dispatch, constants
const=win32com.client.constants
olMailItem = 0x0
obj = win32com.client.Dispatch("Outlook.Application")
newMail = obj.CreateItem(olMailItem)
newMail.Subject = "I AM SUBJECT!!"
newMail.Body = "I AM IN THE BODY\nSO AM I!!!"
newMail.To = "abc@abc.com"
attachment1 = "x:\\report.htm"
newMail.Attachments.Add(Source=attachment1)
newMail.display()
newMail.Send()
Run Code Online (Sandbox Code Playgroud)
非常感谢您。
我想使用 win32com.client 将整个数据框打印到 excel 工作簿中。
它适用于单个值或数组,但是当我尝试复制和粘贴维度为 x * y 的整个数据框时,它会出现如下错误:
TypeError: Objects for SAFEARRAYS must be sequences (of sequences), or a buffer object.
Run Code Online (Sandbox Code Playgroud)
我想知道是否有办法输出数据帧。提前致谢。
我的代码出现上述错误:
sel = ws.Range('B11:O72')
sel.Value = db[:]
Run Code Online (Sandbox Code Playgroud)
我这样做是因为一张一张打印很慢。
我有一个 MS Excel 工作簿,我想打开它,然后循环浏览选项卡并为原始工作簿中的每个选项卡创建和保存一个工作簿。所以我打开文件 A,有选项卡 1、2、3,然后创建并保存文件 B、C、D,每个文件都有一个唯一的选项卡。我有 VBA 的代码,它创建了一个工作表的单个副本,但是当我尝试在 Python 中执行此操作时,我最终得到了每个工作簿中的所有选项卡。以下是有效的 VBA:
Sub ConvertTabsToFiles()
Dim currPath As String
currPath = Application.ActiveWorkbook.Path
Application.ScreenUpdating = False
Application.DisplayAlerts = False
For Each xWs In ThisWorkbook.Sheets
xWs.Copy
Application.ActiveWorkbook.SaveAs Filename:=currPath & "\" & xWs.Name & ".xlsx"
Application.ActiveWorkbook.Close False
Next
Application.DisplayAlerts = True
Application.ScreenUpdating = True
End Sub
Run Code Online (Sandbox Code Playgroud)
以下是不起作用的 Python 代码:
xlApp = win32.com.client.Dispatch("Excel.Application")
xlwb = xlApp.Workbooks.Open("C:\Inputfile.xlsx")
for sheet in xlwb.Worksheets:
sheet.Copy
xlApp.ActiveWorkbook.SaveAs("C:\Users\user\AppData\Local\Temp\\"+ sheet.Name+".xlsx")
Run Code Online (Sandbox Code Playgroud)
非常感谢您的帮助,我很难过。提前致谢。
我尝试将此链接与vba代码一起使用, 但在Python中不起作用。
import win32com.client
Excel = win32com.client.Dispatch("Excel.Application")
wb = Excel.Workbooks.Open(r'C:/Users/Home/Desktop/expdata.xlsx')
wb.Worksheets("Report").Activate # ????? ????????? ?????
sheet = wb.ActiveSheet
obj1=wb.ActiveSheet.Pictures.Insert(r'C:\Users\Home\Desktop\picture.jpg')
obj1.ShapeRange
obj1.ShapeRange.LockAspectRatio = msoTrue
obj1.ShapeRange.Width = 75
obj1.ShapeRange.Height = 100
obj1.Left = xlApp.ActiveSheet.Cells(i, 20).Left
obj1.Top = xlApp.ActiveSheet.Cells(i, 20).Top
obj1.Placement = 1
obj1.PrintObject = True
wb.save
wb.Close
Excel.Quit()
Run Code Online (Sandbox Code Playgroud)
()9个工作表(20,20)中的AttributeError Traceback(最近一次通话最后一次)。选择10#obj1 = sheet.Shapes.AddPicture(r'C:/Users/Home/Desktop/picture.jpg',False, True,10,3,100,100)---> 11 obj1 = wb.ActiveSheet.Pictures.Insert(r'C:/Users/Home/Desktop/picture.jpg')12 obj1.ShapeRange 13 obj1.ShapeRange。 LockAspectRatio = msoTrue
AttributeError:“函数”对象没有属性“插入”
如何使用win32com模块找到打开的 Excel 工作簿?我只想读取尚未保存的 Excel 工作簿中的单元格。或者有什么文件可以参考吗?
我创建了一个使用 pydirectinput 按下键盘上的某些键的应用程序。问题是 pydirectinput 有点慢,而我的应用程序需要很快。有谁知道如何使用 win32 进行按键操作,如果是的话,您能告诉我如何下载和安装它,以及如何使用它来按键盘上的某些键。我正在使用 python 3.8。谢谢