_extract_mes_progress.py 2.4 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576777879808182
  1. # -*- coding: utf-8 -*-
  2. import os
  3. import sys
  4. try:
  5. from openpyxl import load_workbook
  6. except ImportError:
  7. import subprocess
  8. subprocess.check_call([sys.executable, "-m", "pip", "install", "openpyxl", "-q"])
  9. from openpyxl import load_workbook
  10. out_path = r"c:\work\demo\dayang\mescloud\_extract_mes_progress_output.txt"
  11. out = open(out_path, "w", encoding="utf-8")
  12. def p(s=""):
  13. out.write(s + "\n")
  14. xlsx_path = r"c:\Users\j2742\Desktop\temp\大洋\实施文档\大洋-京宜安MES实施进度.xlsx"
  15. p("=" * 80)
  16. p("EXCEL FILE: " + xlsx_path)
  17. p("=" * 80)
  18. wb = load_workbook(xlsx_path, data_only=True)
  19. p("\n1. SHEET NAMES:")
  20. for i, name in enumerate(wb.sheetnames, 1):
  21. p(f" {i}. {name}")
  22. max_rows, max_cols = 150, 20
  23. for sheet_name in wb.sheetnames:
  24. ws = wb[sheet_name]
  25. p("\n" + "=" * 80)
  26. p(f"SHEET: {sheet_name}")
  27. p(f"Dimensions (reported): {ws.dimensions}")
  28. p("=" * 80)
  29. count = 0
  30. for row in ws.iter_rows(min_row=1, max_row=max_rows, min_col=1, max_col=max_cols):
  31. for cell in row:
  32. v = cell.value
  33. if v is not None and str(v).strip() != "":
  34. p(f" {cell.coordinate}: {v}")
  35. count += 1
  36. p(f" --- Non-empty cells in range (1-{max_rows}, A-T): {count} ---")
  37. wb.close()
  38. def list_dir_depth(path, max_depth, current_depth=0, prefix=""):
  39. if not os.path.isdir(path):
  40. p(f" [NOT FOUND OR NOT A DIR]: {path}")
  41. return
  42. try:
  43. entries = sorted(os.listdir(path))
  44. except Exception as e:
  45. p(f" [ERROR]: {path}: {e}")
  46. return
  47. for name in entries:
  48. full = os.path.join(path, name)
  49. if os.path.isdir(full):
  50. p(f"{prefix}[DIR] {name}/")
  51. if current_depth + 1 < max_depth:
  52. list_dir_depth(full, max_depth, current_depth + 1, prefix + " ")
  53. else:
  54. try:
  55. size = os.path.getsize(full)
  56. p(f"{prefix}[FILE] {name} ({size} bytes)")
  57. except Exception:
  58. p(f"{prefix}[FILE] {name}")
  59. p("\n" + "=" * 80)
  60. p(r"2. DIRECTORY: c:\Users\j2742\Desktop\temp\大洋\实施文档 (depth 2)")
  61. p("=" * 80)
  62. list_dir_depth(r"c:\Users\j2742\Desktop\temp\大洋\实施文档", 2)
  63. p("\n" + "=" * 80)
  64. p(r"3. DIRECTORY: c:\Users\j2742\Desktop\temp\大洋 (depth 2)")
  65. p("=" * 80)
  66. list_dir_depth(r"c:\Users\j2742\Desktop\temp\大洋", 2)
  67. out.close()
  68. print("Wrote", out_path)