Python-Excel : How to write lines of a row to an existing excel file?

标签 python excel

我搜索了该网站,但找不到与以下问题相关的任何内容。

我有一个现有的电子表格,我将每天从中提取数据,电子表格中的信息每天都会发生变化。

我想做的是创建一个文件来跟踪此单元格中的某些信息,我希望它从电子表格中提取数据并将其写入另一个电子表格。将数据添加到新电子表格不应覆盖现有数据。我真的很感激这方面的帮助。见下面的代码:

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/

相关文章:

javascript - 使用 javascript 继续或进入 PHP 循环

Python 枚举等价物

python - Matplotlib:向 cartopy 图像添加颜色条

python - django - 加载 MySQLdb 模块时出错 : No module named MySQLdb

c# - 如何使用 Microsoft.Office.Interop.Excel 从 Excel 导入数据集?

excel - 在包含多个部分的公式中使用错误处理

vba - 如何使用 VBA 从 Excel 数据集自动创建过滤列表?

Python Keyring,如何传递主密码

python - 如何使用 Python 确定从星期日开始的一年中的第几周?

Excel VBA循环遍历列表框