繁体   English   中英

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

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

我是一名新编码员,目前正在尝试为更大的对象创建示例代码。 我用Google搜索了大多数问题,但找不到“最终”问题的任何答案,因此我决定将其发布。

这段代码基本上是打开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")

OUTPUT

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

  • 50 B2-3 / 3 | 050750 @ B2-3 / 3 | 050715

  • 50 B2-3 / 4 | 050750 @ B2-3 / 4 | 050715

  • 50 B2-3 / 5 | 050750 @ B2-3 / 5 | 050715

我希望“文本文件”中的内容完全在“输出文件”上。

文本文件中的内容。

  • 050730
  • 050740
  • 050740A
  • 050740B
  • 050740-1 / 1
  • 050740-1 / 2
  • 050740-2 / 1
  • 050740-2 / 2
  • 050740-3 / 1
  • 050740-3 / 2
  • 050740-4 / 1
  • 050740-4 / 2

我认为您现在已经找到问题了,但是我还是想在这里提出答案(以便我们可以在未解决的问题上清空论坛)。

您正在创建许多单元,然后为其分配相同的值,即line。 我假设您在输出中看到的值是值的完整列表的一部分? 附带说明一下,我可能会补充说,您使用的硬编码值范围应尽可能避免。

作为我自己的初学者,我敢于提出一个可能更好用的解决方案。

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

有关枚举功能的更多详细信息,请查看此处的官方文档。 基本上,它为每个元素从零开始提供索引值。 编辑:意外地将str()保留在i周围。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM