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

时间:2018-02-04 12:58:43

标签: python python-3.x python-2.7 excel-2010 openpyxl

我是一名新编码员,目前正在尝试为更大的东西创建示例代码。我谷歌了解了我的大多数问题,但我找不到任何“最终”问题的答案,所以我决定发布它。

此代码基本上可以打开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 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

我希望TEXT FILE中的内容与OUTPUT FILE完全匹配。

文本文件中的内容。

  • 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

1 个答案:

答案 0 :(得分:0)

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

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

我自己还是一个初学者,所以我提出一种可能更好用的解决方案。

echo GridView::widget([
    'dataProvider' => $model->getActivityCombined(),
    'columns' => [
            'counter_reset',
            'impress_town',
            'impress_county',
            'impress_listing',
            'clicks_web',
            'clicks_facebook',
            'clicks_twitter',
    ],
]);

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