如何使用 openpyxl 将数据从 .csv 转换为 .xlsx 时将字符串转换为数字

How to convert strings to numbers, when taking data from .csv to .xlsx, using openpyxl

我编写这段代码是为了获取存储在 .csv 文件中的信息并将其放入 .xlsx 文件中。当它在 excel 文档中时,所有信息都是字符串。我想不出将它们更改为数字的方法,因此我可以使用 openpyxl 来创建折线图。这是代码

import openpyxl
import csv

examplefile = open('output.csv')
exampleReader = csv.reader(examplefile)
exampleData = list(exampleReader)


wb = openpyxl.load_workbook('open.xlsx')
ws = wb.get_sheet_by_name('Sheet1')

for i in range (1,9):
    for h in range(1, 5):
        a = i-1
        b = h-1
        ws.cell(row=i, column=h).value = exampleData[a][b]


wb.save('practice.xlsx')

这是 csv 文件

Date,Temp,Min Temp,Max Temp
2016-07-11,288.69,287.68,288.69
2016-07-12,289.55,288.79,289.55
2016-07-13,294.3,293.79,294.3
2016-07-14,296.35,296.098,296.35
2016-07-15,291.824,291.824,291.824
2016-07-16,293.373,293.373,293.373
2016-07-17,291.808,291.808,291.808

我也知道这不是从 a 到 b 获取数据的最有效方法,所以如果有任何关于如何更好地做到这一点的建议,请包括这些建议。

CSV reader 将文件读入二维列表,其中每一行代表一行。数据被读入并存储为字符串。因此,您需要明确地将值转换为所需的类型,如下所示:

ws.cell(row=i, column=h).value = float(exampleData[a][b])

在这里查看进一步的解释:Python import csv to list