###在使用Python创建的Excel中打开CSV文件时的字符

时间:2018-06-27 04:29:12

标签: python excel python-2.7 csv

我在python中创建了一个CSV文件,因此它创建了一个csv文件。当我在excel中打开该文件时,显示了一些####字符。当我手动增加该列的宽度时,它将打印原始数据。通过编程,可能会增加该列的宽度。示例代码如下所示。在此先感谢您的答复。

import csv
from datetime import datetime

csvData = ([[datetime.now().date(), datetime.now().time().strftime("%I:%M:%S %p")]])
with open('test.csv', 'a') as csvFile:
    writer = csv.writer(csvFile, delimiter=',', quoting=csv.QUOTE_ALL, 
             lineterminator='\n')
    writer.writerows(csvData)
csvFile.close()

2 个答案:

答案 0 :(得分:2)

CSV =逗号分隔值,它没有与值关联的任何属性,因此excel使用其默认设置来显示其值。 要编写* .xls文件,您可以使用xlwt模块,而对于* .xlsx文件XlsxWriter模块。

答案 1 :(得分:1)

这是因为列的宽度小于列的内容。当您从python导出CSV文件时,由于没有CSV文件的autofit()函数,这种情况容易发生。但是,您可以通过手动拖动以显示列的实际内容而不是####来扩大列宽。

如果要在从python导出EXCEL文件时自动调整列的宽度,也可以使用以下代码。

import win32com.client as win32
excel = win32.gencache.EnsureDispatch('Excel.Application')
wb = excel.Workbooks.Open(r'file_path.xlsx')
ws_1 = wb.Worksheets("Sheet 1")
ws_1.Columns.AutoFit()
ws_2 = wb.Worksheets("Sheet 2")
ws_2.Columns.AutoFit()
wb.Save()
excel.Application.Quit()