我是一个新的编码器,目前正试图为更大的东西创建一个示例代码。我搜索了我的大部分问题,但我找不到任何“最后”问题的答案,所以我决定张贴它。
这段代码基本上可以打开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()这段代码直到这里才能正常工作。
#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文件\文本文件\\输出文件
我希望文本文件中的内容准确地出现在输出文件上。
文本文件中的内容。
发布于 2018-07-31 14:32:02
我猜想你现在已经发现了这个问题,但我想无论如何我还是会在这里找到答案的(这样我们就可以开始清空论坛上没有答案的问题了)。
您正在创建许多单元格,然后分配给相同的值,即行。我假设您在输出中看到的值是完整的值列表的一部分?另外,我可能补充说,您在范围内使用的是一个硬编码值,如果可能的话,应该避免。
作为一个初学者,我冒昧地提出了一个可能更好的解决方案。
with open("Saved.txt","r") as f:
for i, line in enumerate(f):
Pointer = "A{}".format(i+1)
sheet[Pointer] = line有关枚举函数的更多细节,请查看正式文档这里。基本上,它为从零开始的每个元素提供了一个索引值。编辑:意外地将str()保存在i周围。
https://stackoverflow.com/questions/48608297
复制相似问题