Excel轉Json升級版-Python

小紫蘇 發表於 2021-12-26
Python Excel

Excel轉Json升級版

image-20211226022627186

將excel資料夾中所有xslx檔案全部轉換json檔案,存放在data資料夾中;

image-20211226023002464

excel中的格式,從序號為2的行開始,2行為key;1行可以自由寫註釋;

使用時用雙擊excel_to_json.py檔案即可;

使用條件

1.python安裝

2.安裝excel庫openpyxl

​ 使用pip安裝,複製該連線中所有文字;

​ 任意位置建立txt檔案命名為get-pip,複製內容後儲存,將txt檔案字尾改為py;

​ 開啟cmd,輸入py (此處有空格),脫動剛建立好的get-pip.py檔案進入cmd執行;

​ cmd中輸入pip install openpyxl執行;

指令碼

import openpyxl
import json
import io
import os

# excel表格轉json檔案
def excel_to_json(excel_file, json_f_name):
    jd = []
    heads = []
    book = openpyxl.load_workbook(excel_file)
    sheet = book[u'Sheet1']
    
    max_row = sheet.max_row
    max_column = sheet.max_column
    # 解析表頭
    for column in range(max_column):
        heads.append(sheet.cell(2, column + 1).value)
    # 遍歷每一行
    for row in range(max_row):
        if row < 3:
        	# 前兩行跳過
            continue
        one_line = {}
        # 遍歷一行中的每一個單元格
        for column in range(max_column): 
            k = heads[column]
            v = sheet.cell(row + 1, column + 1).value
            one_line[k] = v
        jd.append(one_line)
    book.close()
    # 將json儲存為檔案
    save_json_file(jd, json_f_name)

# 將json儲存為檔案
def save_json_file(jd, json_f_name):
    f = io.open(json_f_name, 'w', encoding='utf-8')
    txt = json.dumps(jd, indent=2, ensure_ascii=False)
    f.write(txt)
    f.close()

def to_work():
    filenames=os.listdir(r'./excel')
    for file_info in filenames:
        strlist = file_info.split('.')
        excel_to_json('./excel/'+file_info, './data/'+strlist[0]+".txt")
        print(file_info +' to json successful')


if '__main__' == __name__:
    to_work()
    print('All data to json complete')