首页 > 编程问答 >如何修改Excel表格而不丢失扩展名?

如何修改Excel表格而不丢失扩展名?

时间:2024-08-03 17:31:02浏览次数:5  
标签:python excel

我正在尝试修改 Excel 文件,其中包含许多 VBA 操作(不是我创建的)。我温和地尝试修改单个组合框项目。

from openpyxl import load_workbook

# Load the workbook
workbook = load_workbook('input.xlsx')

# Select the worksheet
worksheet = workbook['Monthly']

# Change the value of the cell C5
worksheet['C5'] = 9

# Save the workbook with a new name
workbook.save('output.xlsx')

这些是我收到的警告:

用户警告:不支持数据验证扩展,并将 删除了警告(msg)

用户警告:条件格式扩展是 不支持,将被删除 warn(msg)

输出文件大小要小得多,并且某些功能消失,尽管组合框值已被修改。我的问题是是否有一个库可以保留验证/条件格式扩展的功能,同时允许我修改单元格值?


很遗憾, openpyxl 本身并不支持修改 VBA 代码或保留 Excel 文件中的所有扩展功能,例如数据验证、条件格式和 VBA 操作。它主要用于读取和写入单元格数据,并且在保存时可能会删除或修改某些高级 Excel 功能。

为了修改 Excel 文件而不丢失扩展名和功能,可以考虑以下替代方案:

1. 使用 xlwings 库:

xlwings 是一个 Python 库,允许通过 Python 代码与正在运行的 Excel 实例进行交互。它可以在不修改文件结构的情况下操作单元格、运行 VBA 宏以及访问 Excel 对象模型。

```python import xlwings as xw

# 打开 Excel 文件 wb = xw.Book('input.xlsx')

# 选择工作表 sheet = wb.sheets['Monthly']

# 修改单元格值 sheet.range('C5').value = 9

# 保存文件 wb.save() ```

2. 使用 win32com 模块:

win32com 是 Python for Windows 扩展的一部分,允许与 Windows 应用程序(包括 Excel)进行交互。可以使用它来自动执行 Excel 并修改文件,而无需更改文件结构。

```python import win32com.client

# 创建 Excel 应用程序对象 excel = win32com.client.Dispatch("Excel.Application")

# 打开 Excel 文件 wb = excel.Workbooks.Open('input.xlsx')

# 选择工作表 sheet = wb.Worksheets('Monthly')

# 修改单元格值 sheet.Range("C5").Value = 9

# 保存文件 wb.Save()

# 关闭 Excel 应用程序 excel.Quit() ```

3. 使用其他 Python 库:

还有一些其他的 Python 库可以处理 Excel 文件,例如 XlsxWriter , pandas xlrd . 这些库的功能各不相同,可能需要根据的具体需求选择合适的库。

请注意,使用 xlwings win32com 需要在的计算机上安装 Microsoft Excel。

希望这些信息对有所帮助!

标签:python,excel
From: 78828344

相关文章

  • Python+Pycharm下载安装教程,基础知识(详细教程)
    这是一篇针对初学者的 Python 基础教程,只要你认真阅读,花费30分钟即可快速了解Python。这篇Python入门教程讲解的知识点包括:Python编程环境的搭建、Python基本操作入门、Python数据类型、Python语句和函数。Python环境下载和配置根据Windows版本(64位/32位)从P......
  • 在Python中发出警告而不中断程序
    我试图在Python中发出警告,而不会使程序崩溃/停止/中断。我使用以下简单函数来检查用户是否向其传递了非零数字。如果是这样,程序应该警告他们,但继续正常进行。它应该像下面的代码一样工作,但应该使用类Warning()、Error()或Exception()而不是手动......
  • Python中动态类和动态方法的创建与调用
    借助于python的动态语言特性,很容易对对象进行添加方法或者属性,这也是python的灵活之一。动态生成类的属性及其方法在某些情况可能要根据不同的参数来动态生成不同的实例方法、静态方法、类方法。下面的例子中则展示了如何动态地向类中添加属性和方法。importtypesclassPers......
  • Python学习中最常见的10个列表操作问题
    列表是Python中使用最多的一种数据结果,如何高效操作列表是提高代码运行效率的关键,这篇文章列出了10个常用的列表操作,希望对你有帮助。1、迭代列表时如何访问列表下标索引普通版:items=[8,23,45]forindexinrange(len(items)):print(index,"-->",items[index])​......
  • Python中定义(创建)、调用函数及返回值
    1.定义(创建)函数要调用一个函数,首先要定义它。在Python中使用关键字def来定义一个函数。函数通常由函数名、参数列表以及一系列语句组成的函数体构成的。函数定义的一般格式如下:def函数名(参数列表):函数体例如:defsayhello(): print('hello')最简单的函数:defm......
  • python用List的内建函数list.sort进行排序
    对List进行排序,Python提供了两个方法方法1用List的内建函数listsort进行排序listsort(func=None,key=None,reverse=False)Python实对List进行排序,Python提供了两个方法方法1.用List的内建函数list.sort进行排序list.sort(func=None,key=None,reverse=False)>>>list=......
  • 人工智能-AI处理表格制作技巧:ExcelWPS三秒做表,大神到小白
    在数字化时代,数据处理和分析能力已成为职场人必备的技能之一。而表格处理软件,如Excel和WPS,更是日常工作中不可或缺的工具。但面对海量的数据和复杂的表格制作要求,很多人可能会感到手足无措。不过别担心,今天我将向大家揭示一个秘密武器——利用人工智能-AI处理表格制作技巧,只需......
  • 禁用 GIL 的 Python 3.13 非常慢
    我对python3.12.0与使用3.13.0b3标志编译的python--disable-gil进行了简单的性能测试。该程序使用ThreadPoolExecutor或ProcessPoolExecutor执行斐波那契数列的计算。引入禁用GIL的PEP文档表示,存在一些开销,主要是由于有偏差......
  • 有没有办法阻止 setUp() 为 python 测试用例中的每个测试方法启动浏览器?
    我正在练习编写Web自动化测试用例,并且编写了一些函数来测试登录、在用户主页中查找我的用户名以及测试GitHub的注销功能。然而,我通过经验和阅读了解到setUp()是在每个测试方法之前启动的,而我的问题是在每个测试方法之前它都会打开一个新的浏览器。我希望我的所有测......
  • 尝试使用Python抓取需要先登录的网站但没有成功
    我正在尝试抓取一个需要登录的网站(我的路由器GUI),但无论我做了什么,我都会反复返回登录站点的源代码,而不是成功登录后出现的页面。我做了一些阅读,并意识到我需要返回POST请求的答案。我想我找到了它们并返回了所需的值,但仍然-似乎没有任何效果。我使用https://curl.tri......