![](/img/trans.png)
[英]Write to an existing xlsx file, overwriting just some sheets in Python
[英]How to write data into existing '.xlsx' file which has multiple sheets
我必须将数据更新/附加到现有的 xlsx 文件中。
xlsx 文件包含多个工作表。 例如,我想将一些数据附加到现有工作表“Sheet1”中,如何执行此操作
要将新数据行附加到现有电子表格,您可以使用openpyxl
模块。 这会:
ws.get_highest_row()
确定正在使用的最后一行例如:
import openpyxl
file = 'input.xlsx'
new_row = ['data1', 'data2', 'data3', 'data4']
wb = openpyxl.load_workbook(filename=file)
ws = wb['Sheet1'] # Older method was .get_sheet_by_name('Sheet1')
row = ws.get_highest_row() + 1
for col, entry in enumerate(new_row, start=1):
ws.cell(row=row, column=col, value=entry)
wb.save(file)
请注意,从 XlsxWriter 的文档中可以看出:
XlsxWriter 仅设计为文件编写器。 它无法读取或修改现有 Excel 文件。
这种方法不需要安装 Windows / Excel,但在支持级别方面确实有一些限制。
试试 xlwings(目前可从http://xlwings.org 获得)它适用于读写 excel 文件。
您需要的一切都在快速入门教程中。 这样的事情应该是你想要的。
import xlwings as xw
with open("FileName.xlsx", "w") as file:
wb = xw.Book(file) # Creates a connection with workbook
xw.Range('A1:D1').value = [1,2,3,4]
为了读取和写入数据到特定的工作表。 您可以激活工作表,然后调用Range('cell_ref')
。
Sheet('Sheet1').activate();
选择当前工作表上的单个单元格
a = xw.Range('A1').value;
xw.Range('A1').value = float(a)+5;
显式选择单元格范围
xw.Range('A1:E8').value = [new_cell_values_as_list_of_lists];
xw.Range('Named range').value = [new_cell_values_as_list_of_lists];
自动选择从“A1”开始并向右和向下移动的连续填充单元格范围...直到找到空单元格。
Range('A1').table.value;
也可以使用以下方法只选择一行或一列:
Range('A1').vertical.value;
Range('A1').horizontal.value;
创建范围对象的其他方法(来自 api doc enter link description here )
Range('A1') Range('Sheet1', 'A1') Range(1, 'A1')
Range('A1:C3') Range('Sheet1', 'A1:C3') Range(1, 'A1:C3')
Range((1,2)) Range('Sheet1, (1,2)) Range(1, (1,2))
Range((1,1), (3,3)) Range('Sheet1', (1,1), (3,3)) Range(1, (1,1), (3,3))
Range('NamedRange') Range('Sheet1', 'NamedRange') Range(1, 'NamedRange')
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.