使用 python 将内容从 .txt 文件存储到 .xlsx 时出错

Error when storing content from a .txt file to a .xlsx using python

我是一名新程序员,目前正在尝试为更大的东西创建示例代码。我 google 解决了大部分问题,但找不到 "final" 问题的任何答案,所以我决定 post 它。

此代码基本上是打开 Excel 文件、获取特定列的数据、编辑数据并将其保存到名为 "Saved.txt" 的文本文件中的代码。代码到这里为止都很好用。我的问题是当我试图将所有数据逐行上传到另一个 Excel 文件时。请帮帮我!

import openpyxl
from openpyxl import Workbook

Code = "0507"
Save = open("Saved.txt","a")     

#Reading from XLSX and writing into a TEXT FILE after appending the data.
fname = 'Wekanda 2.xlsx'
wb = openpyxl.load_workbook(fname)
sheet = wb.get_sheet_by_name('Wekanda 2')
for rowOfCellObjects in sheet['R2':'R282']:
    for cellObj in rowOfCellObjects:
    line_w = cellObj.value
    line_w = str(line_w)
    line_w = line_w.replace(" ","@")
    Save.write("\n"+Code+line_w)
    test = str(line_w)
Save.close()

This code works perfectly till here.

#Storing into Excel!
book = Workbook()
sheet = book.active

with open("Saved.txt","r") as f:
for line in f:
    for i in range(1,281):
        Pointer = "A"+str(i)
        sheet[Pointer] = line

book.save("Next.xlsx")

输出

- EXCEL 文件 |文本文件 |输出文件




我希望文本文件中的内容与输出文件中的内容完全相同。

文本文件中的内容。

我假设你现在已经找到了问题,但我想我还是会在这里给出答案(这样我们就可以开始清空论坛中未回答的问题)。

您正在创建大量单元格,然后为这些单元格分配相同的值,即行。我假设您在输出中看到的值是完整值列表的一部分?作为旁注,我可能会补充说,您使用的是范围内的硬编码值,应尽可能避免。

作为初学者,我冒昧地提出一个可能更好的解决方案。

with open("Saved.txt","r") as f:
for i, line in enumerate(f):
    Pointer = "A{}".format(i+1)
    sheet[Pointer] = line

有关枚举函数的更多详细信息,请查看官方文档here。基本上它为每个元素提供一个从零开始的索引值。 编辑:不小心将 str() 保留在 i.

周围