| # -*- coding: utf-8 -*- | |
| from openpyxl import load_workbook | |
| import sys | |
| from io import BytesIO | |
| class HuExcelParser: | |
| def __call__(self, fnm): | |
| if isinstance(fnm, str): | |
| wb = load_workbook(fnm) | |
| else: | |
| wb = load_workbook(BytesIO(fnm)) | |
| res = [] | |
| for sheetname in wb.sheetnames: | |
| ws = wb[sheetname] | |
| rows = list(ws.rows) | |
| ti = list(rows[0]) | |
| for r in list(rows[1:]): | |
| l = [] | |
| for i,c in enumerate(r): | |
| if not c.value:continue | |
| t = str(ti[i].value) if i < len(ti) else "" | |
| t += (":" if t else "") + str(c.value) | |
| l.append(t) | |
| l = "; ".join(l) | |
| if sheetname.lower().find("sheet") <0: l += " ——"+sheetname | |
| res.append(l) | |
| return res | |
| if __name__ == "__main__": | |
| psr = HuExcelParser() | |
| psr(sys.argv[1]) | |