首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

xlsxwriter在"thisworkbook“上添加宏,以便在打开时执行

xlsxwriter是一个用于创建Excel文件的Python库。它允许开发人员在Excel文件中添加数据、图表、格式和宏等内容。

在xlsxwriter中,要在打开Excel文件时执行宏,可以使用add_vba_project()方法。该方法接受一个包含VBA代码的二进制文件作为参数,并将其添加到Excel文件中。

以下是一个完整的示例代码,演示如何在打开Excel文件时执行宏:

代码语言:txt
复制
import xlsxwriter

# 创建一个新的Excel文件
workbook = xlsxwriter.Workbook('output.xlsx')

# 添加一个工作表
worksheet = workbook.add_worksheet()

# 写入数据到工作表
worksheet.write('A1', 'Hello')

# 添加VBA宏
with open('macro.vba', 'rb') as f:
    vba_code = f.read()
    workbook.add_vba_project(vba_code)

# 关闭Excel文件
workbook.close()

在上面的代码中,我们首先创建了一个新的Excel文件,并添加了一个工作表。然后,我们使用write()方法将数据写入工作表中。接下来,我们使用add_vba_project()方法添加了一个包含VBA代码的二进制文件。最后,我们关闭了Excel文件。

请注意,macro.vba文件应该是一个包含要执行的VBA代码的有效的二进制文件。你可以使用任何文本编辑器编写VBA代码,并将其保存为二进制文件。

关于xlsxwriter的更多信息和示例,请参考腾讯云官方文档:xlsxwriter库

页面内容是否对你有帮助?
有帮助
没帮助

相关·内容

Excel中调用Python脚本,实现数据自动化处理

虽然Excel对小规模数据场景来说是刚需利器,但它面对大数据就会有些力不从心。...另外,如果你的菜单栏还没有显示“开发工具”,那需要把“开发工具”添加到功能区,因为我们要用到。 步骤很简单: 1、"文件"选项卡,转到"自定义>选项"。...2、“自定义功能区”和“主选项卡”下,选中“开发工具”复选框。 菜单栏显示开发工具,就可以开始使用。 如果你还不知道什么是,可以暂且把它理解成实现自动化及批量处理的工具。...xlwings会帮助你创建.xlsm和.py两个文件,.py文件里写python代码,.xlsm文件里点击执行,就完成了excel与python的交互。 怎么创建这两个文件呢?...创建好后,指定文件夹里会出现两个文件,就是之前说的.xlsm和.py文件。 我们打开.xlsm文件,这是一个excel宏文件,xlwings已经提前帮你写好了调用Python的VBA代码。

3.9K20

Excel+Python,简直法力无边

虽然Excel对小规模数据场景来说是刚需利器,但它面对大数据就会有些力不从心。...另外,如果你的菜单栏还没有显示“开发工具”,那需要把“开发工具”添加到功能区,因为我们要用到。 步骤很简单: 1、"文件"选项卡,转到"自定义>选项"。...2、“自定义功能区”和“主选项卡”下,选中“开发工具”复选框。 菜单栏显示开发工具,就可以开始使用。 如果你还不知道什么是,可以暂且把它理解成实现自动化及批量处理的工具。...xlwings会帮助你创建.xlsm和.py两个文件,.py文件里写python代码,.xlsm文件里点击执行,就完成了excel与python的交互。 怎么创建这两个文件呢?...创建好后,指定文件夹里会出现两个文件,就是之前说的.xlsm和.py文件。 我们打开.xlsm文件,这是一个excel宏文件,xlwings已经提前帮你写好了调用Python的VBA代码。

4.6K50

如何在Excel中调用Python脚本,实现数据自动化处理

虽然Excel对小规模数据场景来说是刚需利器,但它面对大数据就会有些力不从心。...另外,如果你的菜单栏还没有显示“开发工具”,那需要把“开发工具”添加到功能区,因为我们要用到。 步骤很简单: 1、"文件"选项卡,转到"自定义>选项"。...2、“自定义功能区”和“主选项卡”下,选中“开发工具”复选框。 菜单栏显示开发工具,就可以开始使用。 如果你还不知道什么是,可以暂且把它理解成实现自动化及批量处理的工具。...xlwings会帮助你创建.xlsm和.py两个文件,.py文件里写python代码,.xlsm文件里点击执行,就完成了excel与python的交互。 怎么创建这两个文件呢?...创建好后,指定文件夹里会出现两个文件,就是之前说的.xlsm和.py文件。 我们打开.xlsm文件,这是一个excel宏文件,xlwings已经提前帮你写好了调用Python的VBA代码。

3.8K30

VBA实战技巧32:安装Excel加载

,即可打开上图1所示的“加载”对话框。...图2 如果你的加载不在“可用加载”列表中,则必须单击该对话框右侧的“浏览”按钮,进行查找,然后将其添加到可用加载列表中。...当单击“浏览”按钮以查找加载项,会在此处添加键。...这样做是为了避免惹烦那些习惯于只需要打开加载项的人。 接下来它调用IsInstalled函数,该函数检查是否已安装加载项。 然后,有两个关于插件文件存储位置的检查。...最后一行关闭加载项打开的所有工作簿。为什么?因为当没有活动工作簿你无法打开加载项对话框,显然这也会阻止Excel通过VBA将新加载项添加到列表中。

4.6K20

ChatGPT与Excel结合_编写VBA

VBA允许用户编写自定义的脚本或以便通过执行一系列指令来自动完成特定任务。 使用Excel VBA,你可以创建和编辑工作表、处理数据、执行计算、生成报表、自定义用户界面等。...VBA可以通过录制的方式生成初始代码,也可以手动编写代码来实现更复杂的功能。你可以Excel中的"开发者"选项卡中访问VBA编辑器,其中可以编写、修改和运行VBA。...才知道原来excel也可以写代码,打开方式是:开发工具中选择VB 那怎么用ChatGPT与Excel结合来编写VBA呢?...excel表格文件哦) 6️⃣执行完,打开刚刚设置的路径文件,程序执行pass~~ 虽然chatGPT没有理解我的命令是“每一行”生成新表格,但“回炉再造”一遍就好,重要的是学会ChatGPT...与Excel结合来编写VBA ---- 案例2 又比如我的需求是:编写一个Excel VBA,将工作薄,每个工作表中的图片,移动到A1单元格 Dim ws As Worksheet

43020

ChatGPT与Excel结合_编写VBA

VBA允许用户编写自定义的脚本或以便通过执行一系列指令来自动完成特定任务。 使用Excel VBA,你可以创建和编辑工作表、处理数据、执行计算、生成报表、自定义用户界面等。...VBA可以通过录制的方式生成初始代码,也可以手动编写代码来实现更复杂的功能。你可以Excel中的"开发者"选项卡中访问VBA编辑器,其中可以编写、修改和运行VBA。...才知道原来excel也可以写代码,打开方式是:开发工具中选择VB 那怎么用ChatGPT与Excel结合来编写VBA呢?...excel表格文件哦) 6️⃣执行完,打开刚刚设置的路径文件,程序执行pass~~ 虽然chatGPT没有理解我的命令是“每一行”生成新表格,但“回炉再造”一遍就好,重要的是学会ChatGPT...与Excel结合来编写VBA ---- 案例2 又比如我的需求是:编写一个Excel VBA,将工作薄,每个工作表中的图片,移动到A1单元格 Dim ws As Worksheet

49510

VBA代码库10:强制用户启用

有时,必须确保用户在打开工作簿启用,否则就不能实现工作簿的效果。由于无法使用打开,因此需要一种确保用户启用的技术。...下面讲解的方法隐藏除“欢迎”工作表(告诉用户启用)之外的所有工作表,并在每次保存工作簿强制执行该工作表。如果用户启用了的情况下打开工作簿,则将不会隐藏所有工作表。...但是,关闭文件确实会产生一个非常小的问题。如果用户尝试退出该应用程序,它将关闭工作簿,而不是Excel。再次退出将完全关闭Excel。...'调用自定义的保存程序并设置工作簿的saved属性为true '(取消常规的保存) Call CustomSave(SaveAsUI) Cancel = True '重新打开事件并设置...代码放置ThisWorkbook代码模块中。 2. 工作簿中应该有一个名为“欢迎”的工作表,否则你要将代码前面的常量WelcomePage设置为用户没有启用的提示工作表名称。

2.3K40

Excel实战技巧78: 创建个人工作簿

个人工作簿是一个文件,可以应用程序开启时运行其中的VBA代码,就像是运行功能区选项卡中的命令一样。创建个人工作簿很简单,如下所示。...步骤1:打开一个Excel工作簿,单击功能区“开发工具”选项卡中的“录制”命令,弹出的“录制”对话框中,选取“保存在”下拉列表框中的“个人工作簿”,如下图1所示。单击“确定”。 ?...图3 下面,我们将《Excel实战技巧77:实现在当前工作表和前一个使用的工作表之间自由切换》中创建的快捷键功能放到个人工作簿中,以便于在所有打开的工作簿中都能使用这个功能。...ThisWorkbook模块,输入代码: '打开工作簿时运行 Private Sub Workbook_Open() Call TabBack_Run End Sub 保存并关闭Excel文件,...注意,因为个人工作簿中的功能可以应用到所有工作簿中,所以在编写代码应使用ActiveWorkbook,而不是ThisWorkbook

2.6K30

火绒安全警报:新型宏病毒通过Excel传播 访问2345网站暗刷流量

,被感染的Excel文件打开后会出现“安全警告 已被禁用”的提示。...准备工作完成后,病毒代码会通过ActiveX对象调用IE浏览器访问带有推广计费名的2345导航网址。因为通过这种方式被脚本调用的其他程序启动都是隐藏的,所以普通用户不会有所察觉。...authorization.xls被创建后,所有被启动的Excel文档都会加载执行该宏病毒代码。相关代码,如下图所示: ? XLSTART目录中释放病毒宏文档 ?...XLSTART目录中被创建的病毒Excel文档 当有其他Excel文档被打开,如果当前文档ThisWorkbook模块前10行中存在“update”、“boosting”、“person”关键字...,则会将ThisWorkbook模块中的原始代码删除,删除行数与病毒代码行数相同。

1K30

Excel多工作薄合并

弹出的菜单中单击右侧红色加号,添加要合并的目标工作薄,添加之后,调整好顺序,然后点击开始就OK了。 ?...VBA宏代码: ▼ 这个宏代码是论坛的Excel高手提供的,利用宏代码的好处就是不用加载插件,一劳永逸。...♢代码框中黏贴刚才复制的代码 ♢回到新建工作表中,选择开发工具——弹出菜单中选择刚才建立的宏文件,点击执行 ? ♢Excel会出现弹出菜单:合并工作薄 ?...如果想要保存并且以后多次使用此宏代码的话,可以刚才新建的工作表中插入一个矩形方框,右击选择指定,选择刚才的宏文件并确定,再想要使用此功能直接点击指定的矩形框就行了,不用再那么麻烦的去开发工具中调用宏代码...以后再想用的时候,直接打开这个含有的工作薄然后单击指定按钮就OK了!

1.3K60

文科生也能学会的Excel VBA 编程入门

而“”可以理解为一组自动化程序,执行一个就能执行其对应的一系列操作。...】都可以打开编程窗口,但程序作用范围不一样,由于我们需要操作两个Sheet,因此双击【ThisWorkbook打开。...Visual Basic常用的逻辑判断语句如下,当逻辑条件1满足执行程序1,都不满足执行程序3,其中Elseif 逻辑条件 Then的数量不限。 If 逻辑条件1 Then ......这时,点击【开发工具】 → \rightarrow →【】也能找到我们编写的,点执行就能运行,但我们可以看到,这里的位置为“ThisWorkbook”,也就是我们打开的这个Excel文件,别的文件里是无法运行这个的...点【确定】,这时可能会提示文件必须打开,那我们就把PERSONAL.XLSB这个文件打开后再来一次。 这次点【确定】可以录制了,事实什么都无需录,直接点【停止录制】即可,我们只想要个壳而已。

5.2K20

Excel实战技巧:创建带有自定义功能区的Excel加载

图1 “属性”对话框中,“标题”属性显示加载名称,“备注”属性显示加载详细说明,如下图2所示。 图2 第3步:添加。由于自定义功能区的每个命令都需要有相应的事件处理程序,而这需要来实现。...打开VBE,ThisWorkbook代码模块输入代码: Public Sub MyMacro(ByRef control As Office.IRibbonControl) Call MsgBox...图4 第5步:Custom UI Editor中打开并编辑加载打开Custom UI Editor,选择“File——Open”,导航到MyCustomRibbon.xlam文件。...文件名单击右键,选择“Office 2010 Custom UI Part”或“Office 2007 Custom UI Part”,如下图5所示。...单击工具栏的“Validate(验证)”按钮检查XML格式是否正确,如下图6所示。 图6 保存并关闭Custom UI Editor。 第6步:关闭Excel,然后重新打开Excel。

2.6K20

VBA通用代码:Excel中创建弹出菜单

注意,内置或自定义上下文菜单不同于弹出菜单的一种方式是,上下文菜单仅在右键单击鼠标显示,而弹出菜单可以需要显示。...=Mname, _ Position:=msoBarPopup, _ MenuBar:=False, Temporary:=True) ' 首先, 菜单中添加两个按钮...& "TestMacro" End With ' 接着, 添加包含两个按钮的菜单....End Sub 回到Excel界面,按Alt+F8键,调出“”对话框,选择“CreateDisplayPopUpMenu”,单击“选项”按钮,选项”对话框中的“快捷键”中输入字母m,如下图1所示...图1 这样,Excel工作表中,按Ctrl+m组合键,会出现如下图2所示的弹出菜单。 图2 当单击菜单中的按钮,会弹出一个信息框,如下图3所示。

3.1K51

《Python for Excel》读书笔记连载17:使用读写器包进行Excel文件操作(

一章一样,本章不需要安装Excel,这意味着所有代码示例都可以Windows、macOS和Linux运行。...以下是它们不同之处概述: OpenPyXL可以读、写和编辑,而XlsxWriter只能写 OpenPyXL更容易生成含有VBA的Excel文件 XlsxWriter有更好的文档记录 XlsxWriter...另一方面,如果可以Windows或macOS运行脚本,并且可以Windows或macOS安装Excel,那么xlwings确实可以作为本章中所有软件包的替代品。...使用OpenPyXL读取 下面的示例代码显示了使用OpenPyXL读取Excel文件如何执行常见任务。...OpenPyXL涵盖的功能比本节中介绍的要多得多,因此,建议看看官方文档。当再次选取一章中案例研究,还将看到更多功能。 XlsxWriter 顾名思义,XlsxWriter只能写Excel文件。

3.7K20

MyVBA加载——添加自定义菜单03——功能分析

即能添加单个的按钮,也能在菜单继续添加下拉式的菜单,这样方便一些同类型的功能放在一起。...01 自动更新 要自动更新是比较简单的,只要在加载打开的时候,执行一次添加菜单的功能即可,所以,需要在加载Thisworkbook模块添加代码: Private Sub Workbook_Open...() Call AddCommanBar End Sub 这样加载打开的时候,每次都去重新创建一次菜单,只要把创建菜单的代码逻辑规划好就可以。...02 分类自动添加 因为需要分类(单独按钮和新的弹出式)创建,所以必须有个地方能够让我们知道要创建的是什么类型的,个人做法是: 毕竟这个不是非常复杂的程序,所以一个单独的文件夹专门存放代码,然后手动创建一个目录...faceID是控件前面的小图标,这个其实无所谓,有兴趣可以写个简单的代码,菜单添加控件,设置不同的faceID看看: Sub TestExcelCMDB() Dim cmdb As CommandBarButton

91630

使用VBA加载小心 Workbook.FullName 属性

Workbook.FullNameVBA中是一个非常常用的属性,返回的是工作簿的全路径,首先查看一下帮助文件: 返回对象的名称(以字符串表示),包括其磁盘路径。String 型,只读。...再仔细一看,会发现我故意将一些字母大小写替换了,文件能正确打开,但FullName返回的字符串和原始字符串有差异了。...看到这里,联系平时使用Windows系统经验,应该能想到,这是因为Windows系统查找文件的时候,是忽略大小写的,所以虽然手动修改了一些字母的大小写,Workbooks.Open仍然可以正确的打开文件...说明加载设置加载的时候,路径就被保存起来了,在这种情况下,如果路径中仅仅是修改了字母的大小写(测试文件名修改没有影响),加载打开不会出问题的,但是,路径其实已经被修改了。...这个加载里设置了一个Ribbon的动态菜单,单击的时候自动遍历所在路径下的宏文件,并添加button菜单,这个时候显然需要过滤掉本身,使用的代码就是: Sub dymOpenAddins_getContent

1.4K40

Excel中自定义上下文菜单(

Excel中的上下文菜单 Microsoft Excel中,人们最常用的上下文菜单是单元格上下文菜单,这是工作表单元格或选定单元格单击鼠标右键看到的菜单(如下图1所示)。...要激活分页预览模式,功能区单击“视图”,然后单击“分页预览”。...要自定义单元格上下文菜单,按Alt+F11打开VBE,单击菜单“插入——模块”。模块中粘贴或键入下面6个过程。第一个过程将控件添加到单元格上下文菜单中,第二个过程从单元格上下文菜单中删除控件。...注意,如何添加标记到该控件,然后用其删除控件。单击按钮或子菜单中的三个选项之一,会运行其他四个过程。本例中,最后四个更改单元格中任何文本的大小写。...当打开或激活该工作簿,这些事件会自动将控件添加到单元格上下文菜单中;当关闭或停用该工作簿,这些事件会自动删除添加的控件。

2.6K40
领券