python - Python Openpyxl - 在 write_only 电子表格中添加列
问题描述
我正在使用 Python 和 openpyxl 库,但是当我的电子表格处于模式时,我无法insert_cols()
在 openpyxl 中使用该函数。write_only=True
所以,基本上,我只想在电子表格处于write_only=True
模式时向它添加一个新列。
insert_cols()
通过 加载工作簿时我可以使用load_workbook()
,但是当我使用该write_only
模式时不能使用。我必须使用该write_only
模式,因为我的电子表格非常大。
任何关于如何添加新列的想法都值得赞赏。
谢谢你。
这是我的代码:
import openpyxl
from openpyxl import Workbook
from openpyxl import load_workbook
wb = load_workbook(filename=r'path\myExcel.xlsx', read_only=True)
ws = wb['PC Details']
wb_output = Workbook(write_only=True)
ws_output = wb_output.create_sheet(title='PC Details')
for row in ws.rows:
rowInCorrectFormat = [cell.value for cell in row]
ws_output.append(rowInCorrectFormat)
for cell in row:
print(cell.value)
### THIS IS THE PART OF THE CODE WHICH DOES NOT WORK
ws_output.insert_cols(12)
ws_output['L5'] = 'OK or NOT GOOD?'
###
wb_output.save(r'path\test_Output_optimized.xlsx')
这是我得到的确切错误:
ws_output.insert_cols(12)
AttributeError: 'WriteOnlyWorksheet' object has no attribute 'insert_cols'
解决方案
这里的问题在于标志write_only = True
。将此标志设置为 true 创建的工作簿与常规工作簿不同,如下所示。
insert_cols 和 insert_rows 等函数也不适用于此类工作簿。
可能的解决方案可能是不使用此标志或使用官方文档中建议的方式将数据添加到工作表。
对于使用工作簿,您可能还会发现这篇文章很有趣。https://medium.com/aubergine-solutions/working-with-excel-sheets-in-python-using-openpyxl-4f9fd32de87f
您可以在官方文档中阅读更多内容。https://openpyxl.readthedocs.io/en/stable/optimized.html
推荐阅读
- sql-server - Powershell 导入 SQL Server:引用错误
- java - 为什么哈希表是空的?
- javascript - React - React 应用程序中的闭包效果
- java - 如何使用不同的系统属性多次调用 Maven 配置文件
- javascript - 在 JavaScript 的硬编码值中添加数据输入字段
- javascript - Safari 上的 Svg 问题
- java - 如何在 Java 中处理两个抽象类的需求?
- javascript - 我从 Jquery 开始,但效果不太好
- python - 使用 tsfresh 仅选择一定数量的顶级功能
- swift - 从多个框架中解决模棱两可的初始化程序