Skip to content

Instantly share code, notes, and snippets.

@Y0lan
Created June 30, 2019 09:30
Show Gist options
  • Select an option

  • Save Y0lan/5bad3d8c795876aff2d2d97b7ac090a8 to your computer and use it in GitHub Desktop.

Select an option

Save Y0lan/5bad3d8c795876aff2d2d97b7ac090a8 to your computer and use it in GitHub Desktop.
import openpyxl
from tkinter import *
from tkinter import filedialog
def write_categories(sheet):
categories = ["Titre",
"Description",
"Catégories",
"Priorité",
"Demandeur",
"Date d'ouverture",
"Date contractuelle de résolution",
"Temps prise en charge",
"Attribué à - technicien"
]
column = 1
for categorie in categories:
sheet.cell(column=column, row=1).value = categorie
column = column + 1
def merge_data(from_sheet, to_sheet):
columns = from_sheet.max_column
rows = from_sheet.max_row
for column in range(2, columns): # skip first column
for row in range(2, rows): # skip first row
if column == 2:
to_sheet.cell(column=1, row=row).value = from_sheet.cell(column=column, row=row).value
if column == 10:
to_sheet.cell(column=2, row=row).value = from_sheet.cell(column=column, row=row).value
if column == 9:
to_sheet.cell(column=3, row=row).value = from_sheet.cell(column=column, row=row).value
if column == 6:
to_sheet.cell(column=4, row=row).value = from_sheet.cell(column=column, row=row).value
if column == 7:
to_sheet.cell(column=5, row=row).value = from_sheet.cell(column=column, row=row).value
if column == 5:
to_sheet.cell(column=6, row=row).value = from_sheet.cell(column=column, row=row).value
if column == 15:
to_sheet.cell(column=7, row=row).value = from_sheet.cell(column=column, row=row).value
if column == 13:
to_sheet.cell(column=8, row=row).value = from_sheet.cell(column=column, row=row).value
if column == 8:
to_sheet.cell(column=9, row=row).value = from_sheet.cell(column=column, row=row).value
def main():
# fichiers à ouvrir
root = Tk()
files = filedialog.askopenfilenames(parent=root, title='Choose files')
files = list(files)
# ouvrir fichier excel
for f in files:
from_workbook = openpyxl.load_workbook(f)
to_workbook = openpyxl.Workbook()
# récupérer la bonne feuille
from_sheet = from_workbook.active
to_sheet = to_workbook.active
write_categories(to_sheet)
merge_data(from_sheet, to_sheet)
to_workbook.save(f.split(".")[0] + "-automatic.xlsx")
if __name__ == "__main__":
main()
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment