Files
studimi_zheni/convert.py
2022-09-22 10:07:14 +02:00

68 lines
2.2 KiB
Python

from sys import orig_argv
import pandas as pd
from os import listdir
from os.path import isfile, join
from docx.api import Document
from enum import Enum
from datetime import datetime
class Klinika(Enum):
KIRURGJI = 'kirurgji'
OBS = 'OBS-GYN'
URGJENCA = 'urgjenca'
def convert(klinika: str):
print(f"Filloi {klinika} me {datetime.now()}")
columns = []
filtered_columns = []
docx_path = './Word/'
xlsx_path = './Excel/'
list_files = [f for f in listdir(docx_path) if isfile(join(docx_path, f))]
list_paths = []
df = pd.DataFrame()
for file in list_files:
if klinika in file and "lock" not in file:
list_paths.append(join(docx_path, file))
for path in list_paths:
viti = file.replace(".docx", "")
viti = viti.split("_")
viti = viti[1]
print(viti)
document = Document(path)
for table in document.tables:
if "urgjenca_2016.docx" in path:
grid = table._tbl.find("w:tblGrid", table._tbl.nsmap)
for cell in table.column_cells(2):
cell._tc.getparent().remove(cell._tc)
col_elem = grid[2]
grid.remove(col_elem)
print(f"U FSHI PAVIONI")
for cell in table.rows[0].cells:
columns.append(cell.text.strip().replace('\n', ' '))
columns.append('VITI')
RowA = table.rows[0]
table_element = table._tbl
table_element.remove(RowA._tr)
for row in table.rows:
text = [cell.text for cell in row.cells]
text.append(viti)
df = df.append([text], ignore_index=True)
print(f"Mbaroi {path} me {datetime.now()}")
for word in columns:
if word not in filtered_columns:
filtered_columns.append(word)
print(filtered_columns)
print(f'{len(filtered_columns)} Columns found')
print('writing to excel...')
print(f"Perfundoi {klinika} me {datetime.now()}")
df.columns = filtered_columns
excel_path = join(xlsx_path, f"raw_{klinika}_2016-2019.xlsx")
df.to_excel(excel_path, index=False)
convert(Klinika.URGJENCA.value)