ARTICLE · 1048329
使用Python读写Excel工作表中的ActiveX文本框
使用Python读写Excel工作表中的ActiveX文本框学习Excel技术,关注微信公众号: excelperfect 欢迎在下面留言,完善本文内容,让更多的人学到更完美的知识。 欢迎到知识星球:完美Excel社群,进行技术交流和提问,获取更多电子资料,并通过社群加入专门的微信讨论群,更方便交流。
标签:Excel与Python
通过Python来读写Excel中的ActiveX文本框可能是非常有趣的,本文通过示例来介绍如何做。
如下图1所示,在工作表Sheet1中有两个分别名为TextBox1和TextBox2的文本框。其中,文本框TextBox1中的内容用于读取,而文本框TextBox2则用于写入内容。

图1
详细的代码如下:
import osimport xlwings as xwdef print_text_box():current_dir = os.path.dirname(os.path.realpath(__file__))wb_path = f"{current_dir}\\ReadWriteTxtBox.xlsx"sheet_name = 'Sheet1'wb = xw.Book(wb_path)sht = wb.sheets[sheet_name]my_text = sht.api.OLEObjects("TextBox1").Object.Valueprint(my_text)def write_into_text_box(text_to_write, label_name):current_dir = os.path.dirname(os.path.realpath(__file__))wb_path = f"{current_dir}\\ReadWriteTxtBox.xlsx"wb = xw.Book(wb_path)wb.sheets('Sheet1').api.OLEObjects(label_name).Object.Value = text_to_writeif __name__ == '__main__':print_text_box()write_into_text_box("Hello, World!", "TextBox2")
其中,ReadWriteTxtBox.xlsx是文本框所在的工作簿名称。运行程序后的结果如下图2所示。

图2
可见,文本框TextBox1中的内容被打印出来,而程序中指定的文本被写入到文本框TextBox2。