最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

python實現(xiàn)讀取Excel內(nèi)容并展示成json

 更新時間:2023年12月25日 09:54:19   作者:shigen01  
這篇文章主要為大家詳細介紹了如何使用python實現(xiàn)讀取Excel內(nèi)容并展示成json功能,文中的示例代碼講解詳細,感興趣的小伙伴可以參考一下

還是先來介紹一下我的背景:昨天突然接到了這樣的活,需要用python解析Excel中多個sheet文件的內(nèi)容,并最終展示成格式化的json。一想,這個我拿手啊,記得shigen之前有一篇這樣的文章:如何在終端查看excel內(nèi)容,豈不是可以直接派上場了。然而事實是我大意了,我沒有考慮到excel中存在的部分單元格是函數(shù)計算出來的情況。為了更好的說明問題,我先來模擬一個表格看看:

表格中的數(shù)據(jù)全都是我用程序生成的,可參考文章:一個腳本,實現(xiàn)隨機數(shù)據(jù)生成自由

那我們依舊用之前的程序讀取會怎么樣子呢?

發(fā)現(xiàn)很正常,但昨天就是不行,是我多疑了?我一看,昨天的文件是xlsm格式的,意思也就是現(xiàn)在的文件是帶有的。那到時候繼續(xù)用那個文件試試吧。

現(xiàn)在,我們來實現(xiàn)讀取文件并選取指定的范圍展示成json的格式。先來看看實現(xiàn)的效果吧:

發(fā)現(xiàn)基本是符合預(yù)期的,那現(xiàn)在看看代碼吧,主要的依賴庫可以直接先安裝:

 pip3 install numpy xlwings

直接執(zhí)行一下的代碼即可,具體的代碼、函數(shù)調(diào)用可參考代碼中的注釋和文檔:

 # -*- encoding: utf-8 -*-
 __date__ = '2023/12/23 12:04:32'
 ?
 import json
 import numpy as np
 import xlwings as xw
 ?
 ?
 def get_sheet_matrix(file_path: str, sheet_name: str, start_cell: str, end_cell: str) ->np.ndarray:
     """
     從指定的 Excel 文件中獲取指定工作表、區(qū)域的數(shù)據(jù),并返回一個 NumPy 矩陣。
 ?
     Args:
         file_path (str): Excel 文件的路徑。
         sheet_name (str): 要讀取數(shù)據(jù)的工作表名稱。
         start_cell (str): 起始單元格的位置,例如 'A1'。
         end_cell (str): 結(jié)束單元格的位置,例如 'C3'。
 ?
     Returns:
         numpy.ndarray: 包含指定區(qū)域數(shù)據(jù)的二維數(shù)組矩陣。
 ?
     Raises:
         FileNotFoundError: 如果文件路徑不存在或無法訪問。
         ValueError: 如果起始單元格或結(jié)束單元格的位置格式不正確。
 ?
     Example:
         # 示例用法
         file_path = 'path/to/file.xlsx'
         sheet_name = 'Sheet1'
         start_cell = 'A1'
         end_cell = 'C3'
         matrix = get_sheet_matrix(file_path, sheet_name, start_cell, end_cell)
         print(matrix)
     """
     app = xw.App(visible=False)
     workbook = app.books.open(file_path)
     sheet = workbook.sheets[sheet_name]
     # 獲取指定區(qū)域的值并構(gòu)建二維列表
     values = sheet.range(start_cell, end_cell).value
     # 將二維列表轉(zhuǎn)換為 NumPy 矩陣
     matrix = np.array(values)
     workbook.close()
     app.quit()
 ?
     return matrix
 ?
 def matrix_to_json(matrix: np.ndarray) -> str:
     """
     將矩陣數(shù)據(jù)轉(zhuǎn)換為 JSON 格式。
 ?
     Args:
         matrix: 二維 NumPy 數(shù)組,包含表頭和數(shù)據(jù)。
 ?
     Returns:
         JSON 格式的字符串。
     """
     headers = matrix[0]
     data = matrix[1:]
 ?
     json_data = []
     for row in data:
         item = {}
         for i in range(len(headers)):
             item[headers[i]] = row[i]
         json_data.append(item)
 ?
     json_str = json.dumps(json_data, indent=2, ensure_ascii=False)
     return json_str
 ?
 if __name__ == '__main__':
     # 此處必須寫絕對路徑
     file_path = '/Users/zzzz/Downloads/demo.xlsm'
     sheet_name = 'Sheet1'
     start_cell = 'A1'
     end_cell = 'D11'
     matrix = get_sheet_matrix(file_path, sheet_name, start_cell, end_cell)
     print(matrix)
     print(matrix_to_json(matrix))

到此這篇關(guān)于python實現(xiàn)讀取Excel內(nèi)容并展示成json的文章就介紹到這了,更多相關(guān)python讀取Excel內(nèi)容內(nèi)容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!

相關(guān)文章

  • 淺談python內(nèi)置變量-reversed(seq)

    淺談python內(nèi)置變量-reversed(seq)

    下面小編就為大家?guī)硪黄獪\談python內(nèi)置變量-reversed(seq)。小編覺得挺不錯的?,F(xiàn)在就分享給大家,也給大家做個參考。一起跟隨小編過來看看吧
    2017-06-06
  • Python字典底層實現(xiàn)原理詳解

    Python字典底層實現(xiàn)原理詳解

    今天小編就為大家分享一篇Python字典底層實現(xiàn)原理詳解,具有很好的參考價值,希望對大家有所幫助。一起跟隨小編過來看看吧
    2019-12-12
  • Python turtle庫的畫筆控制說明

    Python turtle庫的畫筆控制說明

    這篇文章主要介紹了Python turtle庫的畫筆控制說明,具有很好的參考價值,希望對大家有所幫助。一起跟隨小編過來看看吧
    2020-06-06
  • Python使用Spire.XLS輕松實現(xiàn)列表導(dǎo)出到Excel

    Python使用Spire.XLS輕松實現(xiàn)列表導(dǎo)出到Excel

    當我們處理大量數(shù)據(jù)時,如何將Python中結(jié)構(gòu)化的List數(shù)據(jù)高效、準確地寫入到Excel文件中,常常成為開發(fā)者面臨的一個挑戰(zhàn),下面我們就來看看如何使用Spire.XLS for Python實現(xiàn)這一功能吧
    2025-12-12
  • Python?中?yeild?的用法詳解

    Python?中?yeild?的用法詳解

    yield?是?Python?中的關(guān)鍵字,用于生成器函數(shù)中,可以將函數(shù)變成一個迭代器,實現(xiàn)惰性計算,節(jié)省內(nèi)存空間。本文將介紹?yield?的基本用法和實現(xiàn)原理,以及與?yield?相關(guān)的注意事項和常見問題。
    2023-06-06
  • Python編寫萬花尺圖案實例

    Python編寫萬花尺圖案實例

    在本篇文章里小編給大家分享的是一篇關(guān)于Python編寫萬花尺圖案實例的內(nèi)容,有興趣的朋友們可以參考下。
    2021-01-01
  • 如何配置關(guān)聯(lián)Python 解釋器 Anaconda的教程(圖解)

    如何配置關(guān)聯(lián)Python 解釋器 Anaconda的教程(圖解)

    這篇文章主要介紹了如何配置關(guān)聯(lián)Python 解釋器 Anaconda的教程,本文通過圖文并茂的形式給大家介紹的非常詳細,對大家的學(xué)習(xí)火鍋工作具有一定的參考借鑒價值,需要的朋友可以參考下
    2020-04-04
  • 利用python實現(xiàn)AR教程

    利用python實現(xiàn)AR教程

    今天小編就為大家分享一篇利用python實現(xiàn)AR教程,具有很好的參考價值,希望對大家有所幫助。一起跟隨小編過來看看吧
    2019-11-11
  • python寫入csv時writerow()和writerows()函數(shù)簡單示例

    python寫入csv時writerow()和writerows()函數(shù)簡單示例

    這篇文章主要給大家介紹了關(guān)于python寫入csv時writerow()和writerows()函數(shù)的相關(guān)資料,writerows和writerow是Python中csv模塊中的兩個函數(shù),用于將數(shù)據(jù)寫入CSV文件,需要的朋友可以參考下
    2023-07-07
  • OpenCV實現(xiàn)去除背景識別的方法總結(jié)

    OpenCV實現(xiàn)去除背景識別的方法總結(jié)

    這篇文章主要為大家詳細介紹了如何利用OpenCV實現(xiàn)去除背景識別的功能,文中為大家總結(jié)了一些方法,感興趣的小伙伴快跟隨小編一起學(xué)習(xí)一下
    2022-10-10

最新評論

灌阳县| 沂水县| 遂昌县| 新民市| 多伦县| 明光市| 曲沃县| 宁波市| 保定市| 上林县| 文成县| 同仁县| 福鼎市| 甘肃省| 隆回县| 威海市| 喀什市| 泰顺县| 齐齐哈尔市| 卓资县| 平凉市| 拉萨市| 晋城| 县级市| 玛纳斯县| 宜章县| 丰宁| 南皮县| 中江县| 凤凰县| 左贡县| 兴隆县| 遵义县| 集安市| 长子县| 天镇县| 清丰县| 佛教| 贡嘎县| 镶黄旗| 宝兴县|