《代替VBA!用Python轻松实现Excel编程》答疑
《代替VBA!用Python轻松实现Excel编程》简介、文章、视频、答疑等
DataLab
这个作者很懒,什么都没留下…
展开
-
【读者群答疑】安装pywin32后,在pycharm上运行时报下面的错误
尝试其他IDE如IDLE时发现能正常使用,建议先使用能用的IDE。原创 2022-05-05 20:29:52 · 326 阅读 · 0 评论 -
【读者群答疑】在Python中调用Excel的选择多个文件名的功能
>>> import xlwings as xw>>> app=xw.App(add_book=False)>>> lt=app.api.GetOpenFilename('Excel文件 (*.xls;*.xlsx;*.xlsm), *.xls;*xlsx;*.xlsm',MultiSelect=True)>>> #在弹出的对话框中选择工作簿1.xlsx-工作簿5.xlsx>>> lt('D:\\Docum.原创 2022-05-05 20:27:40 · 581 阅读 · 0 评论 -
【读者群答疑】批量修改dataframe的列名
比较下面批量修改dataframe列名的两种方式:>>> import pandas as pd第1种方式:>>> df = pd.DataFrame({'Weight':[45, 88, 56, 15, 71], 'Name':['Sam', 'Andrea', 'Alex', 'Robin', 'Kia'], 'Age':[14, 25, 55, 8, 21]})>>> df Weight Name Age0 4.原创 2022-05-05 20:25:48 · 955 阅读 · 0 评论 -
【读者群答疑】xlwings使用方式下,使用sht.charts.add()和sht.pictures.add()方法时发生类似下面的错误
sht.pictures.add()Traceback (most recent call last):File “C:\Users\Administrator\AppData\Local\Programs\Python\Python37\lib\site-packages\win32com\client\gencache.py”, line 236, in GetModuleForCLSIDimport(sub_mod_name)ModuleNotFoundError: No module...原创 2022-04-26 16:19:11 · 1525 阅读 · 0 评论 -
【读者群答疑】使用xlwings包时,发现rng.rows.count计算错误,其中rng为单元格区域
问题截屏:上面截屏显示,从单元格区域rng中反向删除一些行后,rng.rows.count返回的仍然是删除行操作前的行数。解决方法:使用xlwings的api使用方式,即rng.api.Rows.Count即可。原创 2022-04-26 16:16:36 · 304 阅读 · 0 评论 -
【读者群答疑】Python对象三要素。对比下面几种情况,进行解释
a=b=100a is bTruea=b=500a is bTruea=100b=100a is bTruea=500b=500a is bFalse前面两个,因为有a=b,所以地址一样,值也一样。最后一个,a和b是不同变量,分别分配内存空间,所以虽然值一样,地址却不一样。第三个因为Python对-5-256范围内的整数提供缓存,a和b引用的100在这个范围内,它们使用相同的地址。...原创 2022-04-26 16:14:47 · 773 阅读 · 0 评论 -
用Python怎样实现Excel中的公式向下填充?
使用xlwings包,调用Range对象的FillDown或Copy方法可以实现Excel中的公式向下填充。假设单元格A2中有公式,使用FillDown方法将该公式填充到A2:A6:sht.api.Range(‘A2:A6’).FillDown()使用Copy方法将公式填充到A2:A6:sht.api.Range(‘A2’).Copy(Destination=sht.api.Range(‘A2:A6’))使用Copy方法将公式单独填充到A6单元格:sht.api.Range(‘A2’).Cop.原创 2022-04-26 16:13:33 · 3413 阅读 · 2 评论 -
【读者群答疑】怎样解决将使用OpenPyXl包的程序打包到apk时公式无法返回值的问题?
在电脑上解决此问题时,一般是用win32com等工具将包含公式的Excel文件打开并保存一次,然后OpenPyXL可以从公式获取计算结果。在手机上没有Excel,所以无法打开并保存。解决方法可以考虑用自定义函数实现公式的功能,替换所有公式。...原创 2022-04-26 16:11:32 · 100 阅读 · 0 评论 -
【读者群答疑】使用xlwings包的程序能不能打包到apk?
xlwings包依赖Excel,机器上必须安装了Excel才能正常工作。手机上一般没有安装Excel,所以使用xlwings包的程序打包到apk时无法正常使用。原创 2022-04-09 15:25:36 · 322 阅读 · 0 评论 -
【读者群答疑】使用xlwings编程时,执行语句bk = xw.books.add()时报错
测试发现,当至少有一个Excel应用存在时,执行语句bk = xw.books.add()不会出错;当没有Excel应用存在是直接执行语句bk = xw.books.add()会出错。建议使用下面的方式:>>> import xlwings as xw>>> app=xw.App()>>> bk=app.books.active #或 bk=app.books.add()>>> sht=bk.sheets.activ.原创 2022-04-09 15:21:42 · 377 阅读 · 0 评论 -
【读者群答疑】使用xlwings编程进行调试时会在后台留下若干Excel进程,如何解决?
该程序导入xlwings包后,创建Excel应用,同时在后台创建一个Excel进程。然后获取工作表中的数据进行处理,处理完成后关闭工作簿,并使用app.kill()关闭进程。导致问题出现的原因是,创建Excel进程后,处理数据时程序出错导致中途退出,app.kill()语句并没有执行,所以前面创建的Excel进程没有关闭,在后台留下了。处理方法是,捕获错误进行处理,使app.kill()最终被执行;或从工作表获取数据后马上关闭进程。...原创 2022-04-09 15:19:59 · 1510 阅读 · 1 评论 -
【读者群答疑】使用xlwings的charts对象创建图表cht时,怎么理解cht.api[0].Chart?
如图3所示。用xlwings使用方式,用charts对象的add方法创建图表并返回一个cht对象。在命令行输入cht.api,返回一个有两个元素的元组。其中,第一个元素为ChartObject对象,第2个元素为Chart对象。它们之间的关系是,ChartObject对象的Chart属性返回的对象即为第2个元素表示的Chart对象。在VBA中称为嵌入式图表。图3所以,从该元组的两个元素都可以获取图表对象。从第2个元素直接获取,用第1个元素的Chart属性间接获取。...原创 2022-04-09 15:18:03 · 415 阅读 · 0 评论 -
【读者群答疑】pandas的dataframe数据如何保存为图片
使用xlwings可以将dataframe数据写入Excel工作表,然后将工作表中该dataframe数据占用的单元格区域保存为图片。或直接将数据写入Tkinter的canvas控件,保存为图片。原创 2022-04-02 13:18:57 · 2851 阅读 · 1 评论 -
【读者群答疑】Excel产品与Python产品的对应关系是怎样的
Python的win32com和xlwings包提供的功能与Excel VBA的对应,Python的pandas包提供的功能与Excel Power Query的相对应。前者处理传统中小型数据,后者处理大型数据和中小型数据。前者可以操作Excel对象模型,后者不能。...原创 2022-04-02 13:17:45 · 452 阅读 · 0 评论 -
【读者群答疑】xlwings使用完后怎样结束进程
xlwings使用完后,可以使用Excel应用对象的kill方法或quit方法退出。注意用quit方法退出时不会结束进程,用kill方法退出时会结束进程。原创 2022-04-02 13:16:38 · 1989 阅读 · 0 评论 -
【读者群答疑】安装Pywin32包后导入win32com失败,或使用xlwings时遇到不明问题怎么办
遇到此类问题,首先怀疑Pywin32包的安装有问题。从官网下载安装文件时要选择Python版本和计算机系统对应的安装文件进行安装。比如,当前计算机上使用的Python版本为3.7.7,Windows系统是64位的,则下载版本为3.7,64位的安装文件进行安装。...原创 2022-04-02 13:15:22 · 835 阅读 · 0 评论 -
【读者群答疑】怎样用Python绘图,并将图形固定在指定单元格?
Python绘的图可以直接插入工作表。要固定位置的话,可以先保存图片,然后将图片固定到单元格。参见图形一章图片相关的内容。xlwings中将Matplotlib创建的图表添加到Excel工作表时可以直接指定left,top,width和height的值为指定单元格的对应数据。...原创 2022-04-02 13:14:03 · 1216 阅读 · 0 评论 -
【读者群答疑】工作表中含有大量公式,计算速度慢的问题
工作表中含有大量公式时,在“公式”功能区单击“计算选项“按钮,在弹出的菜单中选择“自动”时计算会慢很多,选“手动”则很快。通过编程来设置手动计算,将Excel应用对象的Calculation属性的值设置为xlCalculationManual。 代替VBA ...原创 2022-04-02 13:09:41 · 1356 阅读 · 0 评论 -
【读者群答疑】使用xlwings与工作表交换数据时如何提高效率?
首先要尽量避免频繁与工作表交换数据。特别是通过循环对每个单元格进行数据的读写,例如读取每行第1列和第2列的单元格的值相乘,然后将所有乘积进行累加。下面的代码在for循环内部读取每个单元格的数据进行计算。因为频繁与工作表进行交互,这种用法的工作效率比较低。sm=0.0for i in range(2,20001): d1=sht.cells(i,1).value d2=sht.cells(i,2).value sm+=d1*d2sht.range('B8').value=sm.原创 2022-04-01 14:40:13 · 388 阅读 · 0 评论 -
【读者群答疑】用Python实现Excel编程时怎样设计界面?
Python中可用Tkinter模块设计界面。在Python IDLE环境下添加脚本文件,输入下面的代码创建窗体和控件,并对控件进行布局。from tkinter import *from tkinter import ttk#创建窗体form=Tk()form.geometry('300x270+100+100')#单选钮变量g1=IntVar()g1.set(0)#核选框变量c1=DoubleVar(value=True)c2=DoubleVar()c3=DoubleV.原创 2022-04-01 14:37:12 · 1011 阅读 · 0 评论 -
【读者群答疑】使用单元格对象的Copy方法无法复制格式的问题
使用单元格(区域)对象的Copy方法可以将该单元格(区域)的全部内容复制到指定单元格(区域),包括其中的文本、格式、批注等。但不包括单元格(区域)的列宽。如果要复制列宽,需要使用单元格对象的PasteSpecial方法。如下面将图1所示单元格区域A2:C4中的内容复制到单元格区域E2:G4。>>> import xlwings as xw>>> app=xw.App()>>> bk=app.books.active>>> s.原创 2022-04-01 14:27:20 · 796 阅读 · 0 评论 -
【读者群答疑】相关库的帮助文档在哪里找?
【读者群答疑】相关库的帮助文档在哪里找?微软官方文档https://docs.microsoft.com/zh-cn/office/vba/api/overview/excel/object-modelxlwings新语法文档https://docs.xlwings.org/en/stable/对象模型https://docs.xlwings.org/en/stable/api.html中文:https://www.kancloud.cn/gnefnuy/xlwings-docs/1127原创 2022-04-01 14:17:53 · 548 阅读 · 0 评论 -
详解xlwings包,用Python代替Excel VBA
详解xlwings包,用Python完美代替Excel VBA原创 2022-01-04 11:26:10 · 3159 阅读 · 0 评论