Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/excel/27.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python 使用循环将大数据写入excel列单元格_Python_Excel_Pandas_Xlsxwriter - Fatal编程技术网

Python 使用循环将大数据写入excel列单元格

Python 使用循环将大数据写入excel列单元格,python,excel,pandas,xlsxwriter,Python,Excel,Pandas,Xlsxwriter,正在分析.ts文件并从该文件中获取字符串。我想把那个字符串写到excel列。有人能帮我吗 from xml.dom import minidom import sys, xlsxwriter import pandas as pd import numpy as np reload(sys) sys.setdefaultencoding('utf-8') doc = minidom.parse("english.ts") def main(): writer = pd.ExcelW

正在分析.ts文件并从该文件中获取字符串。我想把那个字符串写到excel列。有人能帮我吗

from xml.dom import minidom
import sys, xlsxwriter
import pandas as pd
import numpy as np

reload(sys)
sys.setdefaultencoding('utf-8')
doc = minidom.parse("english.ts")


def main():
    writer = pd.ExcelWriter('new.xlsx', engine='xlsxwriter')
    messages = doc.getElementsByTagName("message")
    for message in messages:
        source = message.getElementsByTagName("source")[0]
        ori_string = source.firstChild.data
        print ori_string
        df = pd.DataFrame({'TString': [ori_string]})
        writer = pd.ExcelWriter('new.xlsx', engine='xlsxwriter')
        df.to_excel(writer, sheet_name='Sheet1')
        writer.save()


if __name__ == '__main__':
    main()
我没有收到错误,正在打印“ori_字符串”,但在excel工作表中没有写入任何内容

我只想将字符串写入excel列。如何迭代行以及如何在迭代中给出行和列的编号

from xml.dom import minidom
import sys, xlsxwriter

reload(sys)
sys.setdefaultencoding('utf-8')
doc = minidom.parse("english.ts")


def main():
    row = 0
    messages = doc.getElementsByTagName("message")
    workbook = xlsxwriter.Workbook('data3.xlsx')
    worksheet = workbook.add_worksheet()
    for message in messages:
        source = message.getElementsByTagName("source")[0]
        ori_string = source.firstChild.data
        print ori_string
        worksheet.write(row, 0, ori_string)
        row += 1    
    workbook.close()
现在开始工作了,谢谢@DavidG的建议


通过
for
循环,每次迭代都会覆盖xlsx文件。在循环中构建Pandas数据框并在循环外写入xlsx文件,或者在循环外创建工作簿和工作表并在循环内写入数据,从而直接忽略Pandas并使用XlsxWriter。感谢您的回复。我尝试使用xlsxWriter,但也遇到了类似AttributeError的错误:“dict”对象没有属性“write”。您能告诉我如何将该字符串传递到数据帧吗?(外部循环还是内部循环?因为在每次迭代中都会出现一个字符串,所以我想将该字符串写入每个单元格。)