Python openpyxl将NUMBER格式设置为单元格,但不';行不通
我想通过从csv文件中读取数据来创建excel。 因此,我在python中使用Openpyxl和CSV。 但是,无论Python openpyxl将NUMBER格式设置为单元格,但不';行不通,python,csv,openpyxl,Python,Csv,Openpyxl,我想通过从csv文件中读取数据来创建excel。 因此,我在python中使用Openpyxl和CSV。 但是,无论number\u格式我将csv中的单元格值放在代码中,都保持为“text”格式 from openpyxl import load_workbook import csv from openpyxl.styles import numbers ws= load_workbook('myworkbook.xlsx') with open("myfile.csv", "r",
number\u格式
我将csv中的单元格值放在代码中,都保持为“text”格式
from openpyxl import load_workbook
import csv
from openpyxl.styles import numbers
ws= load_workbook('myworkbook.xlsx')
with open("myfile.csv", "r", newline="", encoding="utf16") as f:
mydata=csv.reader(f,delimiter='|')
for row in mydata:
for col_index,col_data in enumerate(row,3):
ws.cell(row=new800row_count, column=col_index, value=col_data).number_format = numbers.FORMAT_NUMBER
假设我的csv文件包含800200100个数据值。
在使用我上面的代码之后。它不是以数字格式(excel)显示800200100,而是告诉我这个单元格包含以文本形式存储的数字,甚至实际的excel格式也告诉我它是一个数字
感谢您提前提供的帮助。CSV reader旨在简单易懂,并始终为您提供文本。Openpyxl也不会隐式地进行转换。您需要先将文本转换为数字。例如,在每行的循环下:
row = [float(cell) if cell.isdigit() else cell for cell in row]
然后根据您的意愿使用该行。CSV reader旨在使其简单,并始终为您提供文本。Openpyxl也不会隐式地进行转换。您需要先将文本转换为数字。例如,在每行的循环下:
row = [float(cell) if cell.isdigit() else cell for cell in row]
然后根据需要使用行。在数据集中循环,如果是字符串,则将数据转换为浮点:
str = '1234.0'
data = float(str)
row[col] = data
row[col].number_format = '#,##0.00'
最后一行代码确保其格式为数字。在进行上述更改后,不要忘记保存文件。在数据集中循环,如果是字符串,则将数据转换为浮点:
str = '1234.0'
data = float(str)
row[col] = data
row[col].number_format = '#,##0.00'
最后一行代码确保其格式为数字。进行上述更改后,不要忘记保存文件。谢谢。但是,它不起作用。但我注意到,如果我用'F2'按下单个单元格并输入。列将自动转换为数字,因为单元格格式为数字。那么,您知道如何使用python或VBA刷新工作表中的所有单元格吗?谢谢。但是,它不起作用。但我注意到,如果我用'F2'按下单个单元格并输入。列将自动转换为数字,因为单元格格式为数字。那么,您知道如何使用python或VBA刷新工作表中的所有单元格吗?CSV中的所有内容都是字符串,因此您需要将代码中的相关值转换为数字。CSV中的所有内容都是字符串,因此您需要将代码中的相关值转换为数字。