繁体   English   中英

使用 openpyxl 读取 xlsx 文件时获取错误值

[英]Getting wrong value when reading an xlsx file using openpyxl

我正在尝试从包含使用 openpyxl 的公式的 xlsx 文件中读取值; 但是,我注意到对于某些单元格,我得到了错误的值。

这是 XLSX 示例:

XLSX 示例。

这是我得到的结果:

结果我得到。

编码:

 wb = openpyxl.load_workbook(excel_file, data_only=True)

    # getting all sheets
    sheets = wb.sheetnames
    print(sheets)

    # getting a particular sheet
    worksheet = wb["Feuil1"]
    print(worksheet)

    # getting active sheet
    active_sheet = wb.active
    print(active_sheet)

    # reading a cell
    print(worksheet["A1"].value)

    excel_data = list()
    # iterating over the rows and
    # getting value from each cell in row
    for row in worksheet.iter_rows():
        row_data = list()
        for cell in row:
            #cell.number_format='0.0########'
            print(cell.number_format)
            row_data.append(str(cell.value))
            print(cell.value)
        excel_data.append(row_data)

    return render(request, 'myapp/index.html', {"excel_data":excel_data})

嘿,你想要从打开的 excel 文件中得到什么意味着你用哪种类型的格式来控制数据,这是我使用 xlrd 从 excel 文件中获取数据的答案。

 import xlrd
 from xlrd import open_workbook
    
    fp = tempfile.NamedTemporaryFile(delete= False, suffix=filetype)
    fp.write(binascii.a2b_base64(selected file))
    workbook = xlrd.open_workbook(file name)
    sheet = workbook.sheet_by_name(sheet name)
    row = [c or '' for c in sheet.row_values(header_row)]
    first_row = [] 
     for col in range(sheet.ncols):
        first_row.append(sheet.cell_value(0,col) )
    archive_lines = []
       for row in range(1, sheet.nrows):
          elm = {}
          for col in range(sheet.ncols):
             elm[first_row[col]]=sheet.cell_value(row,col)
          archive_lines.append(elm)

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM