Generuj dokumenty Word z danych Excel w Python
Generowanie szablonów WORDa z arkuszy kalkulacyjnych Excel przy użyciu języka Python oferuje liczne korzyści, które mogą znacznie zwiększyć wydajność, dokładność i atrakcyjność prezentacji w różnych kontekstach zawodowych i osobistych. Wykorzystując automatyzację, dostosowywanie i integralność danych, profesjonaliści mogą zapewnić, że ich dokumenty WORD będą skutecznymi narzędziami komunikacji, które przekazują istotne informacje w sposób jasny i dokładny. Jedną z bibliotek umożliwiających konwersję plików Microsoft Excel do formatu Microsoft Word jest pakiet IronXL Python firmy Iron Software oraz biblioteka python-docx.
W tym artykułe omówimy kroki niezbędne do generowania dokumentów WORD z plików Excel.
Jak wygenerować dokument WORD z danych Excel w języku Python
- Utwórz plik Python o nazwie
excelToWord.py. - Zainstaluj pakiety IronXL i python-docx.
- Utwórz lub dodaj plik Excel do folderu projektu.
- Odczytuj dokumenty Excel za pomocą IronXL.
- Utwórz dokument WORD i wstaw dane z Excela za pomocą python-docx.
Czym jest IronXL?
IronXL for Python to solidna biblioteka opracowana przez Iron Software, która pozwala programistom tworzyć, odczytywać i edytować pliki Excel (XLS, XLSX i CSV) w projektach Pythona. Oto kilka kluczowych funkcji i zalet korzystania z IronXL:
Najważniejsze cechy
- Brak zależności od programu Excel: IronXL nie wymaga instalacji programu Microsoft Excel na serwerze, dzięki czemu idealnie nadaje się do środowisk serwerowych bez programu Excel.
- Intuicyjny interfejs API: IronXL zapewnia naturalny i intuicyjny interfejs API do pracy z plikami Excel, co ułatwia integrację z projektami w języku Python.
- Obsługa wielu formatów: IronXL obsługuje różne formaty plików Excel, w tym XLS, XLSX, CSV i TSV.
- Stylizacja komórek: Komórki można stylizować, stosując różne czcionki, rozmiary, tła, obramowania i formaty liczb.
- Obsługa formuł: IronXL może współpracować z formułami programu Excel i przeliczać je przy każdej edycji arkusza.
- Kompatybilność międzyplatformowa: IronXL działa na systemach Windows, macOS, Linux, Docker, Azure i AWS.
Czym jest python-docx
python-docx to biblioteka języka Python, która tworzy, modyfikuje i obsługuje dokumenty programu Microsoft WORD, takie jak pliki .docx. Zapewnia prosty interfejs API do pracy z dokumentami WORDa, umożliwiając wykonywanie takich zadań, jak dodawanie tekstu, formatowanie, wstawianie tabel i obrazów oraz wiele innych.
Najważniejsze cechy
1. Tworzenie dokumentów
Możesz tworzyć dokumenty WORD od podstaw i dodawać do nich treści, w tym akapity, tabele, nagłówki i inne elementy. Ten pakiet może być również używany do edycji pojedynczych dokumentów.
2. Manipulacja tekstem
Dodaj i modyfikuj akapity tekstu. Sformatuj tekst (np. pogrubienie, kursywa, podkreślenie itp.) za pomocą "sekwencji" (fragmentów tekstu o różnych stylach w obrębie akapitu). Dodaj nagłówki różnych poziomów i nadaj im odpowiedni styl.
3. Dodawanie tabel
Utwórz tabele o określonej liczbie wierszy i kolumn. Uzyskaj dostęp do poszczególnych komórek w tabeli i modyfikuj je.
4. Listy
Twórz listy punktowane lub numerowane przy użyciu predefiniowanych stylów.
5. Praca ze stylami
Zastosuj predefiniowane style, takie jak "Nagłówek 1", "Normalny" itp. Możesz również definiować i stosować style niestandardowe do akapitów lub tekstu.
6. Wstawianie obrazów
Wstaw obrazy do dokumentu w określonych miejscach. Możesz zmienić rozmiar obrazów, podając ich szerokość i wysokość.
Wymagania wstępne
Zanim zagłębimy się w kod, upewnij się, że spełniasz następujące wymagania wstępne:
- Zainstalowany Python: Upewnij się, że masz zainstalowany Python na swoim komputerze. Możesz go pobrać z oficjalnej strony Pythona.
- Zainstalowano IronXL: Należy zainstalować pakiet IronXL. Można to zrobić za pomocą pip.
- python-docx zainstalowany: Musisz zainstalować pakiet python-docx. Można to zrobić za pomocą pip.
- Plik Excel: Utwórz przykładowy plik Excel z danymi.
Krok 1: Utwórz plik Python o nazwie excelToWord.py
Otwórz swoje ulubione środowisko IDE, takie jak Visual Studio Code, i utwórz plik o nazwie excelToWord.py.

Krok 2: Dodaj pakiety IronXL i python-docx
Użyj Pip, aby zainstalować pakiety IronXL i python-docx.
pip install IronXL python-docx
pip install IronXL python-docx
Krok 3: Utwórz lub dodaj plik Excel do folderu projektu
Skopiuj przykładowy plik Excel do swojego folderu z kodem. Plik zawiera poniższe dane.

Krok 4: Odczytanie dokumentu Excel za pomocą IronXL
Za pomocą IronXL załaduj dokument Excel i odczytaj wszystkie komórki, korzystając z poniższego kodu.
import ironxl
# Import Document class from python-docx to work with Word documents
from docx import Document
# Set the License Key for IronXL (replace 'your license' with your actual license key)
ironxl.License.LicenseKey = "your license"
# Load the Excel workbook and select the first worksheet
workbook = ironxl.WorkBook.Load("sample.xlsx")
sheet = workbook.WorkSheets[0]
# Read data from the Excel sheet
data = []
# Iterate through rows and columns in the Excel sheet
for row in range(0, len(sheet.Rows)):
row_data = []
for col in range(0, len(sheet.Columns)):
cell_value = sheet.GetCellAt(row, col)
print(cell_value) # Print each cell value
row_data.append(cell_value)
data.append(row_data)
import ironxl
# Import Document class from python-docx to work with Word documents
from docx import Document
# Set the License Key for IronXL (replace 'your license' with your actual license key)
ironxl.License.LicenseKey = "your license"
# Load the Excel workbook and select the first worksheet
workbook = ironxl.WorkBook.Load("sample.xlsx")
sheet = workbook.WorkSheets[0]
# Read data from the Excel sheet
data = []
# Iterate through rows and columns in the Excel sheet
for row in range(0, len(sheet.Rows)):
row_data = []
for col in range(0, len(sheet.Columns)):
cell_value = sheet.GetCellAt(row, col)
print(cell_value) # Print each cell value
row_data.append(cell_value)
data.append(row_data)
Krok 5: Utwórz dokument WORD i wstaw dane z Excela za pomocą python-docx
Proces generowania dokumentu WORD polega na utworzeniu dokumentu WORD i wstawieniu danych odczytanych z pliku Excel.
# Create a new Word document
doc = Document()
# Add a title to the Word document
doc.add_heading('Excel Data Export Using Python Docx', 0)
# Create a table with headers (first row of Excel data)
table = doc.add_table(rows=1, cols=len(data[0]))
hdr_cells = table.rows[0].cells
# Populate header cells with data
for i, header in enumerate(data[0]):
hdr_cells[i].text = str(header)
# Populate table with data from Excel
for row in data[1:]:
row_cells = table.add_row().cells
for i, cell in enumerate(row):
row_cells[i].text = str(cell)
# Save the generated Word document
doc.save("sample.docx")
# Create a new Word document
doc = Document()
# Add a title to the Word document
doc.add_heading('Excel Data Export Using Python Docx', 0)
# Create a table with headers (first row of Excel data)
table = doc.add_table(rows=1, cols=len(data[0]))
hdr_cells = table.rows[0].cells
# Populate header cells with data
for i, header in enumerate(data[0]):
hdr_cells[i].text = str(header)
# Populate table with data from Excel
for row in data[1:]:
row_cells = table.add_row().cells
for i, cell in enumerate(row):
row_cells[i].text = str(cell)
# Save the generated Word document
doc.save("sample.docx")
Pełny kod do generowania dokumentów WORD
# Import required libraries
import ironxl
from docx import Document
# Set the License Key for IronXL
ironxl.License.LicenseKey = "your license"
# Load the Excel workbook
workbook = ironxl.WorkBook.Load("sample.xlsx")
sheet = workbook.WorkSheets[0]
# Read data from the Excel sheet
data = []
# Iterate through rows and columns in the Excel sheet
for row in range(0, len(sheet.Rows)):
row_data = []
for col in range(0, len(sheet.Columns)):
cell_value = sheet.GetCellAt(row, col)
print(cell_value) # Print each cell value
row_data.append(cell_value)
data.append(row_data)
# Document generation process
# Create a new Word document
doc = Document()
# Add a title to the Word document
doc.add_heading('Excel Data Export Using Python Docx', 0)
# Create a table in the Word document
table = doc.add_table(rows=1, cols=len(data[0]))
hdr_cells = table.rows[0].cells
for i, header in enumerate(data[0]):
hdr_cells[i].text = str(header) # Add header cells
for row in data[1:]:
row_cells = table.add_row().cells
for i, cell in enumerate(row):
row_cells[i].text = str(cell)
# Save the Word document
doc.save("sample.docx")
# Import required libraries
import ironxl
from docx import Document
# Set the License Key for IronXL
ironxl.License.LicenseKey = "your license"
# Load the Excel workbook
workbook = ironxl.WorkBook.Load("sample.xlsx")
sheet = workbook.WorkSheets[0]
# Read data from the Excel sheet
data = []
# Iterate through rows and columns in the Excel sheet
for row in range(0, len(sheet.Rows)):
row_data = []
for col in range(0, len(sheet.Columns)):
cell_value = sheet.GetCellAt(row, col)
print(cell_value) # Print each cell value
row_data.append(cell_value)
data.append(row_data)
# Document generation process
# Create a new Word document
doc = Document()
# Add a title to the Word document
doc.add_heading('Excel Data Export Using Python Docx', 0)
# Create a table in the Word document
table = doc.add_table(rows=1, cols=len(data[0]))
hdr_cells = table.rows[0].cells
for i, header in enumerate(data[0]):
hdr_cells[i].text = str(header) # Add header cells
for row in data[1:]:
row_cells = table.add_row().cells
for i, cell in enumerate(row):
row_cells[i].text = str(cell)
# Save the Word document
doc.save("sample.docx")
Wyjaśnienie kodu
Ten skrypt w języku Python wykonuje dwa główne zadania.
1. Odczytywanie danych z pliku Excel przy użyciu IronXL
- Skrypt rozpoczyna się od skonfigurowania licencji biblioteki IronXL, która służy do obsługi plików Excel w języku Python.
- Następnie ładuje plik Excel (
sample.xlsx) i wybiera pierwszy arkusz z pliku. - Skrypt odczytuje dane z arkusza, przechodząc przez wszystkie wiersze i kolumny. Zbiera wartości z każdej komórki w liście 2D (dane), gdzie każdy wiersz w arkuszu Excel odpowiada podliście w ramach danych.
- Wartości komórek są drukowane w konsoli w miarę ich odczytywania.
2. Tworzenie dokumentu WORDa przy użyciu python-docx
- Nowy dokument WORDa jest tworzony przy użyciu biblioteki python-docx.
- Skrypt dodaje tytuł ("Eksport danych z Excela przy użyciu Python Docx") na górze dokumentu za pomocą nagłówka.
- Następnie tworzy tabelę w dokumencie, w której pierwszy wiersz zawiera nagłówki z pierwszego wiersza arkusza Excel, a kolejne wiersze zawierają odpowiednie dane z pliku Excel.
- Na koniec dokument WORDa jest zapisywany jako
sample.docx.
Skrypt odczytuje dane z pliku Excel (sample.xlsx), przetwarza je i eksportuje do tabeli w nowym dokumencie WORD (sample.docx). Pierwszy wiersz arkusza Excel służy jako nagłówki tabeli, a każdy wiersz danych z arkusza Excel jest dodawany do dokumentu WORD jako wiersz w tabeli.
Wynik

Plik WORD

Licencja IronXL (dostępna wersja próbna)
IronXL działa na podstawie ważnego pliku licencji dołączonego do kodu. Użytkownicy mogą łatwo uzyskać Licencję Trial na stronie licencji.
Aby skorzystać z licencji, przed użyciem biblioteki IronXL umieść klucz licencyjny w dowolnym miejscu kodu, tak jak poniżej.
ironxl.License.LicenseKey = "Your License Key"
ironxl.License.LicenseKey = "Your License Key"
Wnioski
Przykładowy kod pokazuje skuteczny sposób odczytu danych z pliku Excel przy użyciu IronXL, a następnie eksportu tych danych do dokumentu WORD przy użyciu python-docx. Proces składa się z dwóch głównych etapów:
- Pobieranie danych z Excela: Skrypt ładuje plik Excel i pobiera dane z pierwszego arkusza. Przechodzi przez wiersze i kolumny, aby zebrać wartości komórek na liście, którą można łatwo modyfikować lub zapisać.
- Tworzenie i wypełnianie dokumentu WORD: Korzystając z biblioteki python-docx, skrypt tworzy nowy dokument WORD, dodaje tytuł i formatuje wyodrębnione dane z Excela w postaci tabeli w dokumencie WORD. Automatycznie umieszcza pierwszy wiersz danych z Excela jako nagłówki, a pozostałe wiersze jako dane tabeli.
Takie podejście pozwala na płynny transfer danych z Excela do WORDa, co może być przydatne przy takich zadaniach, jak generowanie raportów, eksport danych czy automatyzacja dokumentów. Połączenie IronXL.Excel do obsługi plików Excel i python-docx do tworzenia dokumentów WORD stanowi potężne rozwiązanie do pracy z tymi formatami plików w języku Python.
Często Zadawane Pytania
Jak mogę przekonwertować dane z Excela do dokumentu WORD za pomocą Pythona?
Można przekonwertować dane z Excela na dokument Worda za pomocą języka Python, wykorzystując bibliotekę IronXL do odczytu i przetwarzania plików Excel, a następnie używając biblioteki python-docx do utworzenia i wypełnienia dokumentu Worda.
Jakie są zalety wspólnego używania IronXL i python-docx?
Połączenie IronXL i python-docx pozwala na płynną integrację i automatyzację konwersji dokumentów z formatu Excel do formatu WORD. IronXL oferuje funkcje takie jak odczyt i edycja plików Excel bez konieczności korzystania z programu Microsoft Excel, natomiast python-docx zapewnia proste API do manipulowania dokumentami WORD.
Jak odczytać plik Excel w języku Python bez zainstalowanego programu Microsoft Excel?
Za pomocą biblioteki IronXL można odczytywać pliki Excel w języku Python bez konieczności instalowania programu Microsoft Excel. IronXL umożliwia programowe ładowanie plików Excel i uzyskiwanie dostępu do zawartych w nich danych.
Jak wygląda proces tworzenia dokumentu WORD na podstawie danych z Excela?
Proces ten polega na użyciu IronXL do odczytania danych z pliku Excel, a następnie użyciu python-docx do utworzenia dokumentu WORD, w którym dane z Excela są wstawiane do tabel lub bloków tekstowych.
Czy IronXL obsługuje wiele formatów plików Excel?
Tak, IronXL obsługuje wiele formatów plików Excel, takich jak XLS, XLSX i CSV, zapewniając elastyczność w obsłudze różnych typów plików Excel.
Jak mogę zainstalować IronXL i python-docx w moim środowisku Python?
Możesz zainstalować IronXL i python-docx w swoim środowisku Python za pomocą pip, używając polecenia: pip install IronXL python-docx.
Jakie są zalety automatyzacji konwersji dokumentów z formatu Excel do formatu WORD?
Automatyzacja konwersji dokumentów z formatu Excel do formatu WORD może zwiększyć wydajność, dokładność i poprawić wygląd dokumentów poprzez ograniczenie zadań wykonywanych ręcznie, zminimalizowanie błędów oraz zapewnienie spójnego formatowania i integralności danych we wszystkich dokumentach.
Jak formatować komórki Excela za pomocą IronXL?
IronXL oferuje funkcje do stylizowania komórek w Excelu, pozwalające dostosować ich wygląd, np. ustawić czcionki, kolory i obramowania, co może być przydatne przy formatowaniu przed przeniesieniem danych do WORDa.



