我在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()
答案 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()