簡體   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