12345678910111213141516171819202122232425262728293031323334353637383940414243 |
- import win32com.client
- from pathlib import Path
- class excel_macro:
- excel_format = { '.csv': 6, '.xls': 56 , '.xlsx': 51 }
- def __init__(self):
- self.excel = win32com.client.Dispatch("Excel.Application")
- self.excel.DisplayAlerts = False
- #excel.Visible = True
- def split(self, file, format = None):
- filename = Path(file)
- path = str(filename.parent.resolve())
- print(filename.resolve())
- if format == None:
- ext = filename.suffix
- else:
- ext = "." + format
- wb = self.excel.Workbooks.Open(filename.resolve())
- for sh in wb.Sheets:
- tab_filename = filename.stem + "_" + sh.Name + ext
- print(" --> " + tab_filename)
- wb2 = self.excel.Workbooks.Add()
- wb.Worksheets(sh.Name).Activate()
- ws = self.excel.ActiveSheet
- ws.Copy(Before=wb2.sheets(1))
- wb2.sheets(2).Delete()
- wb2.UpdateLinks = 2
- wb2.SaveAs(Filename=path + "\\" + tab_filename, FileFormat=self.excel_format[ext])
- wb2.Close(True)
- wb.Close(True)
-
- if __name__ == "__main__":
- excel_macro().split("Excel\\Mappe1.xlsx", "csv")
-
|