# -*- coding:utf-8 -*- import sys import os.path import openpyxl from typing import List,NoReturn,Dict def allsheet2d(exlfile:str) -> Dict[str,List[List[str]]]: __filecheck(exlfile) res:Dict[str,List[List[str]]] = {} wb = openpyxl.load_workbook(exlfile,data_only=True) for name in wb.sheetnames: res[name] = __sheet2d(wb,name) wb.close() return res def sheet2d(exlfile:str,sheetname:str) -> List[List[str]]: res = None wb = openpyxl.load_workbook(exlfile,data_only=True) if sheetname in wb.sheetnames: res = __sheet2d(wb,sheetname) else: raise NameError('sheetname not found:' + sheetname) wb.close() return res def __sheet2d(wb:openpyxl.Workbook,sheetname:str) -> List[List[str]]: sheet = wb[sheetname] res:List[List[str]] = [] if sheet.max_row == 1 and sheet.max_column == 1: return res for r in range(1,sheet.max_row + 1): line = [] for c in range(1,sheet.max_column + 1): crnt = sheet.cell(row=r,column=c).value line.append(str(crnt) if crnt != None else '') res.append(line) return res def __filecheck(file:str) -> NoReturn: if not os.path.isfile(file): raise FileNotFoundError('file not found:' + file) def __syserr(msg:str): print(msg) sys.exit(9) if __name__ == '__main__': if len(sys.argv) != 2: __syserr('usage:python.exe input_excel') _,inexl = sys.argv if not os.path.isfile(inexl): __syserr('file not found:' + inexl) print(allsheet2d(inexl))