我正在尝试格式化Excel工作表并将其写入CSV文件。我可以使用openpyxl格式化文件,但是,当我将其写入CSV文件时,格式化将丢失。 excel表有2个值,日期" 2017年9月25日和#34; pi的价值和#34; 3.14159265359"。格式化Excel工作表后,Excel工作表中的值为" 2017-09-25"和" 3.14"。但在写入CSV文件后,值为CSV是" 2017-09-25 00:00:00"和" 3.14159265359"
import openpyxl, csv
try:
wb = openpyxl.load_workbook("./Decimals.xlsx", data_only="True")
sheet = wb.active
for r in sheet.rows:
r[0].number_format = "YYYY-MM-DD"
r[1].number_format = "0.00"
wb.save("Decimals.xlsx")
except Exception as e:
print(e)
with open('trialCSV.csv', 'w', newline='') as csvFile:
c = csv.writer(csvFile)
for r in sheet.rows:
c.writerow([cell.value for cell in r])
我搜索过类似的问题,但我找不到任何问题。我一直试图找到解决方案2天,但没有运气。任何帮助是极大的赞赏!谢谢。
答案 0 :(得分:1)
当然,CSV没有格式化的概念,只有数据。 Excel格式化会更改数据的显示而不会更改基础数据本身(否则,例如,一旦您将数据从“0.000000”格式更改为“0.000”,您就永远无法返回)。
如果您真的希望格式“坚持”,您将需要操纵数据本身(在您的示例的情况下,通过将日期转换为您希望的方式格式化的字符串,并舍入pi的值) ,而不是格式化。