-
Notifications
You must be signed in to change notification settings - Fork 29
/
main.py
70 lines (55 loc) · 2.08 KB
/
main.py
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
#-*- coding: utf-8 -*-
import os
import sys
import traceback
from argparse import ArgumentParser
module_path = os.path.dirname(os.path.abspath(__file__))
sys.path.append(os.path.join(module_path, "xl2code"))
import util
import xlsconfig
import install_package
from logtool import native_str
from load_configure import load_configure
def main():
util.redirect_iostream()
parser = ArgumentParser(description=native_str("导表工具"))
parser.add_argument("config_file", help=native_str("配置文件路径"))
parser.add_argument("--gen-header", action="store_true", help=native_str("根据转换器信息生成Excel表头"))
parser.add_argument("--gen-code", action="store_true", help=native_str("生成代码文件"))
parser.add_argument("--export", action="store_true", help=native_str("导表"))
parser.add_argument("--fast-mode", action="store_true", help=native_str("快速导表。Excel没有改动就不进行导表。"))
parser.add_argument("--force-run", action="store_true", help=native_str("出错后仍然继续下去"))
parser.add_argument("-input", help=native_str("Excel的输入路径"))
parser.add_argument("-output", help=native_str("输出路径"))
parser.add_argument("-temp", help=native_str("临时目录"))
option = parser.parse_args()
#parser.print_help()
try:
load_configure(option.config_file, option)
except:
traceback.print_exc()
print "Error: Failed to load configure file", option.config_file
return
xlsconfig.FAST_MODE = option.fast_mode
xlsconfig.FORCE_RUN = option.force_run
if not install_package.check_plugin(("openpyxl", )):
return
if option.gen_header:
import generate_header
generate_header.generate_header()
if option.export or option.gen_code:
export_excel()
if option.gen_code:
import generate_code
generate_code.generate_code()
print "=== 完毕 ===\n"
return
def export_excel():
util.safe_makedirs(xlsconfig.TEMP_PATH, not xlsconfig.FAST_MODE)
import exporters
cls = getattr(exporters, xlsconfig.EXPORTER_CLASS)
exporter = cls(xlsconfig.INPUT_PATH, (".xlsx", ))
exporter.run()
return
if __name__ == "__main__":
main()