Da habe ich mit Python ein Tool zum Generieren von CSV aus Excel-Dateien inklusive Blatt auf einmal erstellt Hier sind die Schritte, um es freizugeben.
Klicken Sie hier für das diesmal erstellte Tool Wir haben auch eine Exe, damit sie außerhalb der Programmumgebung verwendet werden kann. Legen Sie die exe-Datei in den Ordner mit Excel ab und doppelklicken Sie darauf.
exe https://github.com/InTack2/csv-masher/releases
GitHub
https://github.com/InTack2/csv-masher
Nachtrag 2020/05/09 Es tut mir Leid! !! Es blieb privat beim Schreiben, dass es veröffentlicht wurde. .. freigegeben. .. ..
Wenn ich als TA arbeite, bereite ich häufig CSV- und Json-Dateien vor und habe sie im Allgemeinen. Wenn es sich jedoch um eine CSV-Datei handelt, ist es sehr schwierig einzugeben, dass die Zellenbreite beschädigt ist. .. Also verwalte ich es mit Excel. Dieses Mal speichere ich es unter einem anderen Namen und das Eingabeziel ändert sich, so dass es sowieso problematisch ist. Während Sie also ein Tool zur Automatisierung dieses Bereichs erstellen, Übrigens wollte ich die öffentliche Veröffentlichung von GitHub machen, also habe ich es geschafft.
Der Inhalt ist ziemlich einfach. Es ist, als würde man eine Excel-Datei mit der openpyxl-Bibliothek lesen und jedes Blatt mit csv ausspucken. Ich werde die Erklärung usw. weglassen, aber wenn es eine Anfrage gibt ...
#!/usr/bin/env python3
# -*- coding: utf-8 -*-
"""Konvertieren Sie Excel-Dateien im selben Verzeichnis sofort in CSV
"""
import os
import sys
import csv
import openpyxl
#PyInstaller__file__Problemvermeidung
if hasattr(sys, "frozen"):
SEARCH_FILE_DIRECTORY = os.path.dirname(sys.argv[0]) # "..\\[exe_folder]"
#Wenn die Datei ausgeführt wird
else:
SCRIPT_PATH = os.path.dirname(__file__) # "..\\src\\csv-masher"
SRC_PATH = os.path.dirname(SCRIPT_PATH) # "..\\src"
SEARCH_FILE_DIRECTORY = os.path.join(SRC_PATH, "sample_file") # "..\\src\\Sample"
EXCEL_EXTENSION = ".xlsx"
CSV_EXTENSION = ".csv"
class CSVMasher(object):
"""Hauptgenerationsfunktion
"""
def __init__(self):
self.__excel_files = []
self.set_excel_files(self.__search_excel_file(SEARCH_FILE_DIRECTORY))
def create_csv_file(self):
"""Generieren Sie eine CSV-Datei
"""
for excel_file in self.__excel_files:
excel_name = os.path.basename(excel_file).split(".")[0]
excel_current_directory = os.path.dirname(excel_file)
book = openpyxl.load_workbook(excel_file, read_only=True, keep_vba=False)
for sheet in book.worksheets:
sheet_name = sheet.title
export_name = "{excel_name}_{sheet_name}{extension}".format(excel_name=excel_name, sheet_name=sheet_name, extension=CSV_EXTENSION)
export_csv_path = os.path.join(excel_current_directory, export_name)
with open(export_csv_path, "w", encoding="utf-8") as f:
writer = csv.writer(f)
for cols in sheet.rows:
writer.writerow([str(_.value or "") for _ in cols])
def __search_excel_file(self, search_directory):
"""Holen Sie sich eine Excel-Datei
"""
hit_files = []
for dir_path, dir_list, file_list in os.walk(search_directory):
for file_name in file_list:
if EXCEL_EXTENSION in file_name:
hit_files.append(os.path.join(dir_path, file_name))
return hit_files
def get_excel_files(self):
"""Holen Sie sich eine Excel-Datei
Returns:
list:Excel-Passliste
"""
return self.__excel_files
def set_excel_files(self, excel_files):
"""Stellen Sie die Excel-Datei ein
Args:
excel_files (list):Excel-Dateipfadliste
"""
self.__excel_files = excel_files
if __name__ == "__main__":
csv_masher = CSVMasher()
print(csv_masher.get_excel_files())
csv_masher.create_csv_file()
Ich habe den Inhalt gemacht, also habe ich ihn veröffentlicht! !! Ich will dahin, Bei der Konvertierung in exe oder beim Veröffentlichen sind einige Dinge zu beachten.
Da es dieses Mal beendet ist, wird das Paket importiert. In diesem Fall wird die Lizenz der Bibliothek "beigefügt". Sie müssen die Lizenz überprüfen, da es sich um eine andere Methode als die normale "Verwendung" handelt. (Für diejenigen, die hier eine einfache Methode kennen)
Die diesmal verwendeten Pakete einschließlich der Abhängigkeiten lauten wie folgt Es wird nur eine Bibliothek importiert, aber angesichts der Abhängigkeiten denke ich, dass sie sich auf die Imozuru-Formel erhöhen wird.
Wenn Sie es beilegen, müssen Sie grundsätzlich das Urheberrecht und die Lizenzerklärung anzeigen Ich denke, dass openpyxl und seine abhängigen et-xmlfile und jdcal urheberrechtlich geschützt sein sollten. Die Lizenzerklärung wird ziemlich lang sein, aber ich denke, es ist besser, als den Autor unbeabsichtigt zu verletzen, ohne sie anzuzeigen.
https://qastack.jp/software/121998/mit-vs-bsd-vs-dual-license
https://mozxxx.hatenadiary.org/entry/20110529/p4
https://www.catch.jp/oss-license/2013/09/27/mit_license/
Es gibt verschiedene Möglichkeiten, Dieses Mal möchte ich die Release-Funktion von GitHub zum Lernen verwenden.
Dieser Artikel ist leicht zu verstehen und wird daher empfohlen.
https://qiita.com/keita69sawada/items/da6d8f6b6fb8f05ca670
Die Veröffentlichung wurde erfolgreich abgeschlossen.
Öffnen Sie die Repository-Einstellungen
Scrollen Sie nach unten und es ist beängstigend, aber es wird mit In der Spalte Gefahrenzone öffentlich machen gemacht.
Es war schwieriger als ich erwartet hatte. .. Insbesondere rund um die Lizenz spielt es keine Rolle, ob sie normal importiert und verwendet wird. Es scheint, dass Sie bei der Konvertierung in exe vorsichtig sein müssen.
Recommended Posts