Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/excel/25.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
Excel 用python中的csvwriter编写单元格或行_Excel_Python 3.x_Csv - Fatal编程技术网

Excel 用python中的csvwriter编写单元格或行

Excel 用python中的csvwriter编写单元格或行,excel,python-3.x,csv,Excel,Python 3.x,Csv,我想将结果列表导出到.xls文件中,但结果不符合预期 我的代码是: file = filedialog.asksaveasfile(mode='w', defaultextension=".xls") if file: csvWriter = csv.writer(file, dialect='excel') for ele in arg: lista = list(ele) csvWriter.writerow(lista)

我想将结果列表导出到.xls文件中,但结果不符合预期

我的代码是:

    file = filedialog.asksaveasfile(mode='w', defaultextension=".xls")

if file:
    csvWriter = csv.writer(file, dialect='excel')
    for ele in arg:
        lista = list(ele)
        csvWriter.writerow(lista)

    file.close()
我的列表
lista
的内容是:

['ele1', 'ele2', '1215.0', '1.9', '1.37', '"ele3"']
但是excel文件中的结果是第一列中列表的内容,而不是6列,列表中的每个元素对应一列


我想将所有元素放在不同的列而不是不同的行中。

这将把列表放在一行中:

arg=['ele1', 'ele2', '1215.0', '1.9', '1.37', '"ele3"']
import csv

with open("test.csv", 'w') as mfile:
    writer = csv.writer(mfile, quoting=csv.QUOTE_ALL)
    writer.writerow(arg)

在上面的代码中,将分别为每个元素调用csv编写器,这就是为什么将其放在同一列或不同行中。

csv格式是一种文本格式。它由字段组成,字段之间用分隔符分隔(默认情况下为逗号(
),因此得名),并可选地用引号括起来(默认情况下为双引号
)。但通常有不同的分隔符。例如,当逗号用于十进制数时(法语0.5写0,5),通常使用分号(
)作为分隔符。在导入时,Excel应该告诉它将如何加载csv文件。如果什么都没有发生,则必须在Excel参数中搜索,或直接在操作系统语言设置中搜索需要哪个字符作为分隔符。然后在csv编写器中声明它,例如:

csvWriter = csv.writer(file, dialect='excel', delimiter = ";')

在不了解更多csv文件内容和系统配置的情况下,我无法再说更多…

arg中有什么内容??我认为您需要将
writerow
移动到for循环之外,并使用
lista.append(ele)
。如果您使用writerow(ele),它是否不起作用?'arg'是一个列表列表,因此'ele'是一个列表。谢谢最后我使用pandas来解决这个问题:df=pd.DataFrame(arg)df.to_excel(file.name,header=False,index=False)