簡體   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