欧美bbbwbbbw肥妇,免费乱码人妻系列日韩,一级黄片

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

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

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

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

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

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

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

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

 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ù),并返回一個(gè) NumPy 矩陣。
 ?
     Args:
         file_path (str): Excel 文件的路徑。
         sheet_name (str): 要讀取數(shù)據(jù)的工作表名稱(chēng)。
         start_cell (str): 起始單元格的位置,例如 'A1'。
         end_cell (str): 結(jié)束單元格的位置,例如 'C3'。
 ?
     Returns:
         numpy.ndarray: 包含指定區(qū)域數(shù)據(jù)的二維數(shù)組矩陣。
 ?
     Raises:
         FileNotFoundError: 如果文件路徑不存在或無(wú)法訪問(wèn)。
         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__':
     # 此處必須寫(xiě)絕對(duì)路徑
     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實(shí)現(xiàn)讀取Excel內(nèi)容并展示成json的文章就介紹到這了,更多相關(guān)python讀取Excel內(nèi)容內(nèi)容請(qǐng)搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!

相關(guān)文章

  • 如何提取Playwright錄制文件中的元素定位信息

    如何提取Playwright錄制文件中的元素定位信息

    最近在學(xué)習(xí)Playwright自動(dòng)化測(cè)試,本文主要介紹了如何提取Playwright錄制文件中的元素定位信息,文中通過(guò)示例代碼介紹的非常詳細(xì),具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下
    2021-12-12
  • python 標(biāo)準(zhǔn)庫(kù)原理與用法詳解之os.path篇

    python 標(biāo)準(zhǔn)庫(kù)原理與用法詳解之os.path篇

    os.path模塊主要用于文件的屬性獲取,在編程中經(jīng)常用到,本文將帶你熟悉這個(gè)模塊并掌握它的用法,感興趣的朋友跟小編來(lái)看看吧
    2021-10-10
  • Python 中Operator模塊的使用

    Python 中Operator模塊的使用

    這篇文章主要介紹了Python 中Operator模塊的使用,幫助大家更好的理解和使用python,感興趣的朋友可以了解下
    2021-01-01
  • python linecache讀取行更新的實(shí)現(xiàn)

    python linecache讀取行更新的實(shí)現(xiàn)

    本文主要介紹了python linecache讀取行更新的實(shí)現(xiàn),文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧
    2023-03-03
  • Python常見(jiàn)庫(kù)matplotlib學(xué)習(xí)筆記之畫(huà)圖文字的中文顯示

    Python常見(jiàn)庫(kù)matplotlib學(xué)習(xí)筆記之畫(huà)圖文字的中文顯示

    在Python中使用matplotlib或者plotnine模塊繪圖時(shí),常常出現(xiàn)圖表中無(wú)法正常顯示中文的問(wèn)題,下面這篇文章主要給大家介紹了關(guān)于Python常見(jiàn)庫(kù)matplotlib學(xué)習(xí)筆記之畫(huà)圖文字的中文顯示的相關(guān)資料,需要的朋友可以參考下
    2023-05-05
  • Python使用Pandas生成日?qǐng)?bào)的實(shí)現(xiàn)代碼

    Python使用Pandas生成日?qǐng)?bào)的實(shí)現(xiàn)代碼

    Pandas是Python中一個(gè)強(qiáng)大的數(shù)據(jù)處理庫(kù),它提供了許多功能強(qiáng)大的數(shù)據(jù)結(jié)構(gòu)和數(shù)據(jù)分析工具,在本文中,我們將介紹Pandas的基本概念和如何使用它生成一個(gè)包含今天到未來(lái)20個(gè)工作日的日期列表的Excel文件,需要的朋友可以參考下
    2023-11-11
  • 使用 Python ssh 遠(yuǎn)程登陸服務(wù)器的最佳方案

    使用 Python ssh 遠(yuǎn)程登陸服務(wù)器的最佳方案

    這篇文章主要介紹了使用 Python ssh 遠(yuǎn)程登陸服務(wù)器的最佳方案,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧
    2020-03-03
  • Python 使用os.remove刪除文件夾時(shí)報(bào)錯(cuò)的解決方法

    Python 使用os.remove刪除文件夾時(shí)報(bào)錯(cuò)的解決方法

    下面小編就為大家?guī)?lái)一篇Python 使用os.remove刪除文件夾時(shí)報(bào)錯(cuò)的解決方法。小編覺(jué)得挺不錯(cuò)的,現(xiàn)在就分享給大家,也給大家做個(gè)參考。一起跟隨小編過(guò)來(lái)看看吧
    2017-01-01
  • selenium使用chrome瀏覽器測(cè)試(附chromedriver與chrome的對(duì)應(yīng)關(guān)系表)

    selenium使用chrome瀏覽器測(cè)試(附chromedriver與chrome的對(duì)應(yīng)關(guān)系表)

    這篇文章主要介紹了selenium使用chrome瀏覽器測(cè)試(附chromedriver與chrome的對(duì)應(yīng)關(guān)系表),小編覺(jué)得挺不錯(cuò)的,現(xiàn)在分享給大家,也給大家做個(gè)參考。一起跟隨小編過(guò)來(lái)看看吧
    2018-11-11
  • python 怎樣進(jìn)行內(nèi)存管理

    python 怎樣進(jìn)行內(nèi)存管理

    這篇文章主要介紹了python 是如何進(jìn)行內(nèi)存管理的,幫助大家更好的理解和學(xué)習(xí)python,感興趣的朋友可以了解下
    2020-11-11

最新評(píng)論