将一列转换为数字

时间:2016-06-09 19:02:36

标签: python openpyxl

我正在构建一个程序,要求输入csv文件并将其保存在excel中。我有一个货币列 - $ 10.00 - 我可以用我的代码将其他单元格转换为数字,但我认为因为在它没有转换的数字之前有一个'$'。我如何才能解决这一问题 - 谢谢

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)

1 个答案:

答案 0 :(得分:1)

在CSV文件中所有值都是字符串。 openpyxl工作簿有一个option that will let them do type inference,但你最好自己管理转换,在这种情况下,添加一个合适的数字格式。

假设您输入的第四列需要转换为数字。根据这一点,应该有所作为。

@using (Ajax.BeginForm("AddTagToSubject", "Subjects", null, 
         new AjaxOptions() { OnSuccess = "UpdateTableData" }, null)){...}