Python-Excel: 如何将一行的数据写入现有的Excel文件?

3
我已经搜索了该网站,但未找到与以下问题相关的任何内容。
我有一个现有的电子表格,我将每天从中提取数据,电子表格中的信息每天都会改变。
我想做的是创建一个文件,跟踪来自此单元格的某些信息,我希望它从电子表格中提取数据并将其写入另一个电子表格。添加数据到新电子表格不应覆盖现有数据。我真的很感谢您的帮助。请参见下面的代码:
import os
import openpyxl
import xlrd

wb=openpyxl.load_workbook('Test_shorts.xlsx','r')

sheet = wb.active

rows = sheet.max_row
col = sheet.max_column



rows = rows+1

print rows
new =[]
for x in range (2, 3):
   for y in range(1,10):
        z= sheet.cell(row=x,column=y).value
        new.append(z)
print(new)
1个回答

3
如果您想复制整个工作表,可以直接使用copy_worksheet()函数。它会创建您当前活动的工作表的副本。
我不知道您的数据,但我相信您可以自己完成它。希望这可以帮助到您。
from openpyxl import load_workbook

file_name = "Test_shorts.xlsx"
wb = load_workbook(file_name)

sheet = wb.active
target = wb.copy_worksheet(sheet)

# you can code to append new data here
new = wb.get_sheet_by_name(target.title) # to get copied sheet

for x in range (2, 3):
    for y in range(1,10):
        print(x,y)
        z= sheet.cell(row=x,column=y).value
        new.append(z)

wb.save(file_name)

如评论所述,需要循环单元格,因此我稍微修改了您的代码。

from openpyxl import load_workbook

file_name = "Test_shorts.xlsx"
wb = load_workbook(file_name)

current_sheet = wb.active
new_sheet = wb.create_sheet("New", 1)

for row in current_sheet.rows:
    col = 0  # set the column to 0 when 1 row ends
    for cell in row:
        col += 1  # cell.column will return 'ABC's so I defined col for the column
        new_sheet.cell(cell.row, col, cell.value)

wb.save(file_name)

谢谢。但是我想要做的是逐行将数据复制到新的 Excel 工作表中,而不是整个工作簿。 - ldurani

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接