Làm thế nào để ghi một khung dữ liệu của các giá trị chuỗi vào một tệp excel dưới dạng các giá trị số được định dạng?
Về cơ bản, tôi có một danh sách các giá trị chuỗi được chuyển đổi thành số và được in ra một trang tính excel. Tôi đã có thể làm điều đó nhưng tôi muốn những giá trị đó được in dưới dạng "giá trị số excel" . Đây là những gì tôi nhận được:
writer = pd.ExcelWriter('test.xlsx', engine='openpyxl')
listOfValues = ['3913375,45','126179,15','22324,72','26335,28','3699901,34']
df_values = pd.DataFrame({'TOTAL': listOfValues}).apply(pd.to_numeric)
df_values.to_excel(writer, sheet_name='test')
writer.save()
Kết quả của tôi là:
Kết quả Excel
Nhưng tôi muốn nó được in ra dưới dạng các giá trị số được phân tách bằng dấu chấm để làm cho nó sẵn sàng dễ dàng hơn, như vậy:
Kết quả là tôi muốn có được gì
(Giải pháp tôi muốn không thể được in dưới dạng chuỗi trong excel kết quả, nó cần phải là giá trị số, như thể chúng tôi đang sử dụng tùy chọn "Định dạng dưới dạng Số (Shift + ctrl + 1)" trong libreoffice calc).
(Tôi đang sử dụng Python 3.8.5 và LibreOffice Calc để thử nghiệm nhưng kết quả là nhằm hoạt động trong Excel 2016).
Điều đó có thể? Cảm ơn sự giúp đỡ của bạn và xin lỗi về tiếng anh của tôi!
Trả lời
Tôi đã tìm thấy câu hỏi này , câu hỏi khác, câu trả lời khác, nhưng câu trả lời vẫn giống như tôi nghĩ.
from openpyxl import load_workbook
wb = load_workbook('a.xlsx')
ws = wb[wb.sheetnames[0]]
cell11 = ws.cell(1, 1)
cell11.number_format = '#,##0.00'
wb.save('b.xlsx')
wb.close()
Nó hoạt động với định dạng đó, nhưng có vẻ như nó không hoạt động với '#.##0,00'
định dạng
Kiểm tra điều này https://xlsxwriter.readthedocs.io/working_with_pandas.html
Có thể định dạng bất kỳ dữ liệu cột nào khác, không phải ngày / giờ bằng cách sử dụng set_column ()
Hãy thử thay đổi mã mẫu định dạng từ mã này:
format1 = workbook.add_format({'num_format': '#,##0.00'})
đến điều này:
format1 = workbook.add_format({'num_format': '#.##0,00'})