Selaa lähdekoodia

ReportOutput mit Format, falls Report-Name '.xlsx'

gc-server6 2 vuotta sitten
vanhempi
commit
162932f95a
3 muutettua tiedostoa jossa 10 lisäystä ja 6 poistoa
  1. 4 0
      cognos11/c11_api.py
  2. 6 6
      cognos11/c11_export.py
  3. BIN
      dist/c11.exe

+ 4 - 0
cognos11/c11_api.py

@@ -222,6 +222,10 @@ class c11_api:
         report['spec'] = parts[2].text
         path = report['path'].replace('Team Content/ReportOutput', '')
         report['filename'] = f"{self.cfg.cognos11.reportoutput_dir}/{path}/{report['name']}.pdf"
+        report['format'] = 'PDF'
+        if report['name'][-5:].lower() == '.xlsx':
+            report['format'] = 'spreadsheetML'
+            report['filename'] = report['filename'][:-4]
 
         report['params'] = list(re.findall(r'\[([^\]]+)\]', report['filename']))
         for i, p in enumerate(report['params']):

+ 6 - 6
cognos11/c11_export.py

@@ -77,17 +77,17 @@ class c11_export:
 
         if len(report['params']) == 0:
             filename = report['filename']
-            self.request_and_save_file(report['id'], params, filename)
+            self.request_and_save_file(report['id'], params, filename, report['format'])
             return True
         if len(report['params']) == 1:
             filename = report['filename'].format('_1')
-            self.request_and_save_file(report['id'], params, filename)
+            self.request_and_save_file(report['id'], params, filename, report['format'])
 
             key1 = report['params'][0]
             for k1, v1 in report['meta']['optional'][key1].items():
                 filename = report['filename'].format(v1)
                 params[key1] = {k1: v1}
-                self.request_and_save_file(report['id'], params, filename)
+                self.request_and_save_file(report['id'], params, filename, report['format'])
             return True
         if len(report['params']) == 2:
             key1, key2 = report['params']
@@ -96,13 +96,13 @@ class c11_export:
                     filename = report['filename'].format(v1, v2)
                     params[key1] = {k1: v1}
                     params[key2] = {k2: v2}
-                    self.request_and_save_file(report['id'], params, filename)
+                    self.request_and_save_file(report['id'], params, filename, report['format'])
             return True
 
-    def request_and_save_file(self, report_id, params, filename):
+    def request_and_save_file(self, report_id, params, filename, format='PDF'):
         logging.debug(filename)
         logging.debug(params)
-        status_code, content = self.api.request_file(report_id, params)
+        status_code, content = self.api.request_file(report_id, params, format)
         if status_code == 200:
             os.makedirs(os.path.dirname(filename), exist_ok=True)
             with open(filename, "wb") as f:

BIN
dist/c11.exe