Python 将一列转换为数字
我有一个我正在构建的程序,它要求一个csv文件并将其保存在excel中。我有一个列是currency-$10.00-我可以用我的代码将其他单元格转换为数字,但我假设因为在数字之前有一个“$”它不会转换。我怎样才能为这一专栏解决这个问题-谢谢Python 将一列转换为数字,python,openpyxl,Python,Openpyxl,我有一个我正在构建的程序,它要求一个csv文件并将其保存在excel中。我有一个列是currency-$10.00-我可以用我的代码将其他单元格转换为数字,但我假设因为在数字之前有一个“$”它不会转换。我怎样才能为这一专栏解决这个问题-谢谢 def open_csv(): from tkinter import Tk from tkinter.filedialog import askopenfilename import csv from openpyxl import Workbook fr
def open_csv():
from tkinter import Tk
from tkinter.filedialog import askopenfilename
import csv
from openpyxl import Workbook
from openpyxl.cell import get_column_letter
Tk().withdraw()
filename = askopenfilename()
open_rawdata = open(filename, 'r')
csv.register_dialect('commas', delimiter=',')
reader = csv.reader(open_rawdata, dialect='commas')
wb = Workbook()
dest_xls = r'C:\Users\sparkis\Desktop\WeeklyReport.xlsx'
ws = wb.worksheets[0]
ws.title = "TEST TITLE"
for row_index, row in enumerate(reader):
for column_index, cell in enumerate(row):
column_letter = get_column_letter((column_index + 1))
s = cell
try:
s = float(s)
except ValueError:
pass
ws.cell('%s%s'%(column_letter, (row_index + 1))).value = s
wb.save(filename = dest_xls)
在CSV文件中,所有的值都是字符串。openpyxl工作簿有一个数字格式,但是您可以自己更好地管理转换,在本例中,还可以添加适当的数字格式 假设输入的第四列需要转换为数字。类似这样的东西应该会奏效
for idx, row in enumerate(reader, 1):
row[3] = row[3][1:] # strip $
ws.append(row)
ws.cell(idx, 4).number_format = "$"