我是一名新编码员,目前正在尝试为更大的东西创建示例代码。我谷歌了解了我的大多数问题,但我找不到任何“最终”问题的答案,所以我决定发布它。
此代码基本上可以打开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")
我希望TEXT FILE中的内容与OUTPUT FILE完全匹配。
文本文件中的内容。
答案 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周围。