我目前正在將文件從csv轉換爲xlsx。問題是數據默認全部轉換爲字符串。如何將數字(通常顯示爲+ 1.500000000E + 009或「+ 1.50000000000E + 009」(前導空格)從字符串轉換爲數字表示形式)我試過類型轉換和常規變通方法,但沒有任何效果。 「IF」 語句是因爲csv文件具有標題。Python;科學記法字符串編號
def csv_to_excel(csv_path, delimiter, delimiter_txt, excel_path, excel_title):
csv_file = open(csv_path, 'r')
csv.register_dialect(delimiter_txt, delimiter=delimiter)
reader = csv.reader(csv_file, dialect=delimiter_txt)
wb = Workbook()
ws = wb.worksheets[0]
ws.title = excel_title
for row_index, row in enumerate(reader):
for column_index, cell in enumerate(row):
column_letter = get_column_letter((column_index + 1))
if row_index > 3:
ws.cell('%s%s'%(column_letter, (row_index + 1))).value = float(cell)
else:
ws.cell('%s%s'%(column_letter, (row_index + 1))).value = cell
print(cell)
print(type(cell))
wb.save(filename = excel_path)
csv_file.close()
csv_to_excel( 'FILE.CSV', '', '逗號', 'file.xlsx', '數據')
謝謝!任何幫助將是偉大的!
'浮動( '+ 1.50000000000E + 009')'工作 –
看起來你已經在使用'浮動(細胞)'這就是目前的答案是暗示。那它不起作用呢? –
類型轉換應該可行 - 正如答案所暗示的那樣。難道你的第二個'ws.cell = ...'沒有像第一個那樣的類型轉換操作嗎?你有一個'ws.cell ... = float(cell)',另一個只是'ws.cell ... = cell' – MadisonCooper