我搜索了该网站,但找不到与以下问题相关的任何内容。
我有一个现有的电子表格,我将每天从中提取数据,电子表格中的信息每天都会发生变化。
我想做的是创建一个文件来跟踪此单元格中的某些信息,我希望它从电子表格中提取数据并将其写入另一个电子表格。将数据添加到新电子表格不应覆盖现有数据。我真的很感激这方面的帮助。见下面的代码:
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)
最佳答案
如果要复制整个工作表,可以直接使用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)
关于Python-Excel : How to write lines of a row to an existing excel file?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/49848207/