Jak wyświetlać pliki PowerPoint w języku C#
Napisane przez zespol w Iron Software
Scalanie korespondencji z Excela do Microsoft Word pozwala na szybkie tworzenie spersonalizowanych listów, etykiet lub e-maili bez ręcznego edytowania każdego dokumentu. Pomysł jest prosty: masz jedną tabelę Excel zawierającą wszystkie szczegóły odbiorców, łączysz ją z szablonem scalania korespondencji w Wordzie, wstawiasz pola scalania tam, gdzie powinny pojawić się dane osobiste, a Word generuje oddzielną, dostosowaną kopię dla każdego wiersza w Twoich danych. Co normalnie zajęłoby godziny ręcznego edytowania, teraz odbywa się w kilka minut, z poprawnym wypełnieniem wszystkich nazwisk, adresów i szczegółów z listy mailingowej.
Proces scalania korespondencji obejmuje trzy dokumenty, które biorą udział w każdej udanej operacji: plik excel zawierający dane, główny dokument w Wordzie, gdzie znajduje się list lub etykieta, oraz dokument scalony, który jest tworzony na końcu. Udane scalanie korespondencji wymaga czystej tabeli, poprawnie sformatowanych danych oraz szablonu w Wordzie z polami scalania umieszczonymi w odpowiednich pozycjach. Specjalne typy danych, takie jak kody pocztowe, waluty i daty, powinny być poprawnie sformatowane w Excelu przed rozpoczęciem scalania korespondencji, a wszystkie dane muszą być na pierwszym arkuszu skoroszytu Excel, aby Word mógł je poprawnie odczytać.
Ten artykuł wyjaśnia każdy krok procesu: przygotowanie tabeli Excel, połączenie jej jako źródło danych w karcie korespondencji, wstawianie pól scalania, podgląd wyników, ukończenie scalania i obsługa wiadomości e-mail. Deweloperzy, którzy muszą programowo tworzyć lub weryfikować źródła danych Excel przed uruchomieniem scalania, znajdą w końcowej części sekcję opisującą, jak IronXL obsługuje tworzenie i formatowanie plików Excel w .NET bez konieczności instalowania Microsoft Office.
Krok 1: Przygotuj swoją tabelę Excel
Czysta, dobrze zorganizowana tabela Excel to podstawa niezawodnego scalania korespondencji w Wordzie. Przed otwarciem Worda, dopasowanie tabeli między Twoimi danymi a polami scalania zależy całkowicie od tego, jak skonfigurowany jest plik Excel.
Nagłówki kolumn w pierwszym wierszu. Upewnij się, że Twoja tabela Excel ma jedną kolumnę dla każdego elementu, który chcesz uwzględnić, takich jak Imię, Adres, Miasto, Stan i Kod Pocztowy. Nazwy kolumn w pierwszym wierszu stają się polami scalania dostępnymi w Wordzie, więc powinny być unikalne, wyraźnie oznaczone i umieszczone bez pustych wierszy powyżej. Upewnij się, że pierwszy wiersz zawiera unikalne nagłówki i nie ma pustych wierszy powyżej, ponieważ Word używa pierwszego wiersza do identyfikacji dostępnych pól scalania.
Użyj osobnych kolumn dla każdego fragmentu danych. Przechowuj imię, nazwisko i pozdrowienie w osobnych kolumnach, zamiast łączyć je. Daje to pełną kontrolę podczas tworzenia linii powitania i bloku adresu później. Przed uruchomieniem scalania korespondencji w Wordzie upewnij się, że Twoj plik Excel zawiera wszystkie niezbędne informacje, takie jak imię, nazwisko, pozdrowienie, kody pocztowe i adresy.
Formatuj kody pocztowe i zip jako tekst. Przygotowując dane Excel do scalania korespondencji, upewnij się, że kolumna dla kodów ZIP lub kodów pocztowych jest sformatowana jako tekst, aby uniknąć utraty jakichkolwiek wiodących zer. Kod pocztowy jak 02101 straci wiodące zero, jeśli komórka jest sformatowana jako liczba, powodując niepoprawnie sformatowany wynik w każdej scalonej korespondencji.
Przechowuj wszystkie dane na pierwszym arkuszu. Wszystkie dane muszą znajdować się na pierwszym arkuszu skoroszytu Excel, aby scalanie korespondencji było udane. Jeśli Twój skoroszyt ma wiele kart, Word przeczyta tylko pierwszy arkusz, więc przenieś wszystkie swoje wpisy danych do Arkusza 1 przed połączeniem pliku.
Zapisz i zamknij plik Excel. Pliki Excel muszą być zapisane i zamknięte przed połączeniem z Microsoft Word, aby scalanie korespondencji działało prawidłowo. Otwarte pliki Excel mogą powodować błędy połączenia, gdy Word próbuje zaimportować dane.
Utrzymuj nagłówki kolumn krótkie i wolne od spacji, jeśli to możliwe. Nazwy kolumn jak "FirstName" i "ZipCode" są mniej prawdopodobne, że spowodują problem z oknem dialogowym dopasowania pól, niż nazwy zawierające spacje lub znaki specjalne.

Krok 2: Otwórz Worda i rozpocznij scalanie korespondencji
Z gotowym plikiem Excel, otwórz Microsoft Word i stwórz lub otwórz swój główny dokument. Jeśli masz już istniejący dokument, którego chcesz użyć jako szablonu listu, otwórz go teraz, zamiast zaczynać od pustej strony. To jest szablon listu, etykiety lub e-maila, który otrzyma każdy odbiorca.
Używając Kreatora scalania korespondencji krok po kroku:
Aby rozpocząć Kreatora scalania korespondencji w Microsoft Word, kliknij kartę korespondencji, następnie wybierz Rozpocznij scalanie korespondencji i wybierz Kreator scalania korespondencji krok po kroku z rozwijanego menu na dole listy. Kreator scalania korespondencji oferuje przewodnik krok po kroku, który pomaga użytkownikom tworzyć dokumenty scalania korespondencji, ułatwiając nawigację procesu dla początkujących. Panel otwiera się po prawej stronie ekranu, a Word prowadzi przez każdy etap w sekwencji.
Kiedy korzystasz z Kreatora scalania korespondencji, użytkownicy mogą wybrać typ dokumentu, jaki chcą stworzyć, na przykład listy lub etykiety, a następnie przejść przez kroki, aby połączyć się ze swoim źródłem danych i wstawić pola scalania. Dla tego przewodnika, wybierz Listy jako typ dokumentu.
Bezpośrednie korzystanie z zakładki Korespondencji:
Bardziej doświadczeni użytkownicy mogą kliknąć rozpocznij scalanie korespondencji z grupy rozpocznij scalanie korespondencji w zakładce Korespondencji i wybrać typ dokumentu bezpośrednio bez kreatora. Obie metody prowadzą do tego samego wyniku.

Krok 3: Połącz swój plik Excel jako źródło danych
Po ustawieniu typu dokumentu, następnym krokiem jest połączenie pliku Excel, aby Word wiedział, skąd pobrać dane odbiorców.
- W zakładce Korespondencji, kliknij Wybierz odbiorców w grupie rozpocznij scalanie korespondencji.
- Z rozwijanego menu wybierz Użyj istniejącej listy. Aby połączyć swoją tabelę Excel z dokumentem Worda na potrzeby scalania korespondencji, musisz wybrać Użyj istniejącej listy pod opcją Wybierz odbiorców w zakładce Korespondencji.
- Otwarte zostaje przeglądarka plików. Przejdź do folderu zawierającego Twój plik Excel, wybierz go i kliknij otwórz.
- Pojawia się okienko dialogowe wyświetlające arkusze w skoroszycie. Wybierz Arkusz1 (docelowy arkusz zawierający Twoje dane) i kliknij OK.
Word jest teraz połączony z Twoimi danymi excelowymi jako istniejąca lista. Opcja przeglądania istniejącej listy pozwala na zlokalizowanie i otworzenie zapisanego pliku xlsx z dowolnego miejsca na Twoim komputerze. Na tym etapie Word rozpoczyna importowanie informacji z pierwszego arkusza skoroszytu, udostępniając każdy nagłówek kolumny jako pole scalania.
Jeśli Word nie może poprawnie odczytać pliku Excel, sprawdź, czy plik jest zamknięty, zapisany w formacie xlsx i że wszystkie nagłówki kolumn są na pierwszym wierszu Arkusza 1 bez pustych wierszy powyżej.
Po połączeniu, możesz kliknąć wybierz edytuj listę odbiorców w zakładce Korespondencji, aby otworzyć panel odbiorców scalania korespondencji. Pokazuje wszystkie wiersze z Twojej tabeli jako oddzielne wpisy. Możesz go użyć, aby odznaczyć wybrane odbiorców, sortować listę lub filtrować, które wiersze są uwzględnione w scalaniu. Dokładnie przejrzyj listę adresatów przed kontynuowaniem, aby upewnić się, że Word poprawnie odczytuje wszystkie Twoje wpisy danych.

Krok 4: Wstaw pola scalania do swojego dokumentu
Po połączeniu źródła danych, możesz teraz umieścić pola scalania korespondencji wewnątrz dokumentu Worda wszędzie tam, gdzie chcesz, aby pojawiły się dane personalizowane.
Użycie bloku adresowego:
Blok adresowy to skrót, który łączy imię, firmę i adres korespondencyjny w jedno pole. Kliknij Blok adresowy w grupie wstaw pola zakładki Korespondencji. Pojawia się okienko dialogowe, w którym możesz skonfigurować, jak formatowane są imię i adres. Kliknij Dopasuj pola, jeśli jakiekolwiek pole w oknie dialogowym dopasowania pól nie automatycznie zgadza się z nazwami twoich kolumn. Okno dialogowe dopasowania pól umożliwia ręczne mapowanie nagłówków kolumn na oczekiwane nazwy pól, których Word używa wewnętrznie, rozwiązując wszelkie problemy z dopasowaniem tabeli.
Używanie poszczególnych pól scalania:
Dla pełnej kontroli nad układem i formatowaniem, wstawiaj pola scalania jedno na raz. Umieść kursor tam, gdzie chcesz, aby pole się znajdowało, a następnie kliknij Wstaw pola scalania w grupie wstawiania pól. Z rozwijanej listy wybierz każdy nagłówek kolumny z twojej tabeli Excel. Kliknij nazwę pola, aby wstawić je w pozycji kursora. Najczęściej wstawiane pola to:
- "Pozdrowienie" "Imię" "Nazwisko" dla początku bloku adresowego
- "Firma" na linii poniżej
- "Adres" dalej "Miasto", "Stan", i "Kod pocztowy" na kolejnej linii
- Linia powitania, taka jak "Drogi "Pozdrowienie" "Nazwisko","
Użycie linii powitania:
Kliknij wstaw linię powitania w zakładce Korespondencji, aby wstawić wstępnie sformatowaną linię powitania. Okno dialogowe pozwala wybrać format linii powitania (Drogi Panie Smith, Drogi James, itp.) i skonfigurować zamiennik dla odbiorców, których pole nazwisko jest puste.
Zawsze ręcznie dodaj spację między kolejnymi polami scalania. Word nie dodaje spacji między polami automatycznie, więc ""Imię""Nazwisko"" wyświetli się jako "JamesCarter" bez znaku spacji między polami.

Krok 5: Podgląd wyników przed zakończeniem scalania
Po wstawieniu pól scalania do twojego dokumentu, możesz podglądać wyniki, wybierając Podgląd wyników w zakładce Korespondencji, co pozwala zobaczyć, jak będą wyglądały scalone dane.
Kliknij Podgląd wyników w zakładce Korespondencji. Word zastępuje każde pole scalania odpowiadającymi danymi z pierwszego wiersza twojej tabeli Excel. Użyj strzałek lewo i prawo w grupie Podgląd wyników, aby przejść między rekordami i sprawdzić, czy dane każdego odbiorcy wyświetlają się poprawnie. Pozwala to na dokładną weryfikację danych odbiorcy przed zatwierdzeniem całego scalania.
Sprawdź w szczególności:
- Czy linia powitania brzmi naturalnie ("Drogi Panie Carter," a nie "Drogi Panie Carter ,")
- Czy blok adresowy formatuje się poprawnie we wszystkich wierszach, w tym tych z dłuższymi nazwami firm
- Czy kody pocztowe i kody ZIP wyświetlają się z wiodącymi zerami tam, gdzie mają być
- Czy aktualny licznik rekordów na górze strony zgadza się z oczekiwaniami
Po wstawieniu pól scalania do wiadomości e-mail lub listu, możesz podglądać wyniki, aby potwierdzić, czy treść wyświetla się poprawnie przed zakończeniem procesu scalania. Użyj strzałek lewo i prawo, aby przewinąć kilka rekordów, nie tylko pierwszy.

Krok 6: Zakończ scalanie korespondencji i wygeneruj dokumenty
Z potwierdzonym podglądem jesteś gotów do uruchomienia scalania i wygenerowania finalnego wyniku.
Scalanie do nowego dokumentu (zalecane):
W zakładce Korespondencji, kliknij przycisk Zakończ i scalen, a następnie wybierz Edytuj indywidualne dokumenty z rozwijanej listy. Pojawia się okno dialogowe, pytające, czy scalić wszystkie rekordy, bieżący rekord czy przedział. Wybierz Wszystkie i kliknij OK. Word generuje nowy dokument zawierający wszystkie indywidualne dokumenty jako osobne strony, po jednej na odbiorcę. To najbezpieczniejsze podejście, ponieważ pozwala na przegląd scalonych dokumentów przed drukowaniem lub wysyłką.
Wybierz zapisz po przeglądzie, aby zachować scalony dokument. Możesz także wybrać zapisz używając Plik > Zapisz jako, aby zmienić jego nazwę i zachować go obok szablonu i źródła danych.
Bezpośrednie drukowanie:
Kliknij Zakończ i scalen > Drukuj dokumenty, aby wysłać wyniki scalania bezpośrednio do drukarki bez tworzenia pośredniego pliku. Jest to przydatne, gdy musisz natychmiast wydrukować dokumenty i nie potrzebujesz przeglądać ani archiwizować indywidualnych dokumentów wcześniej.

Krok 7: Twórz etykiety korespondencyjne
Ten sam proces scalania korespondencji stosuje się do tworzenia etykiet korespondencyjnych za pomocą tabeli Excel jako źródła danych, używając tych samych kroków, co dla listów.
- W zakładce Korespondencji, kliknij Rozpocznij scalanie korespondencji > Etykiety.
- W oknie dialogowym Opcje etykiet wybierz swojego dostawcę etykiet i numer produktu, aby dopasować fizyczne arkusze etykiet na twoim komputerze.
- Kliknij Wybierz odbiorców > Użyj istniejącej listy i połącz się z tą samą tabelą Excel.
- Kliknij Wstaw pola scalania, aby umieścić pola adresowe na etykiecie. Dodaj "Imię", "Nazwisko", "Adres", "Miasto", "Stan", i "Kod pocztowy" na oddzielnych liniach w obszarze indywidualnych etykiet.
- Kliknij Zaktualizuj etykiety, aby skopiować układ do wszystkich etykiet na stronie.
- Podgląd, następnie zakończ i scali, aby wygenerować indywidualne etykiety gotowe do druku.
Krok 8: Wyślij wiadomości e-mail za pomocą scalania korespondencji
Scalanie korespondencji może także wysyłać spersonalizowane wiadomości e-mail bezpośrednio z Worda przez Microsoft Outlook.
Wysyłanie maili za pomocą scalania wymaga otworzenia Outlooka i ustawienia go jako domyślny program pocztowy. Dotyczy to zarówno klasycznej wersji Outlooka, jak i nowej wersji Outlook. Upewnij się, że to jest skonfigurowane przed rozpoczęciem.
Tworząc scalanie e-maili, upewnij się, że tabela korespondencyjna zawiera kolumnę dla adresów e-mail, które będą używane do wysyłania spersonalizowanych wiadomości do każdego odbiorcy. W przykładzie tabeli, to jest kolumna EmailAddress.
- W zakładce Korespondencji, kliknij Rozpocznij scalanie korespondencji > Wiadomości E-mail.
- Napisz treść e-maila w dokumencie Word, a następnie wstaw pola scalania dla linii powitania i wszelkich treści personalizowanych tak samo, jak dla listu.
- Kliknij Wybierz odbiorców > Użyj istniejącej listy i połącz się z plikiem Excel.
- Aby personalizować wiadomości e-mail przy użyciu scalania, wstaw pola scalania do głównego dokumentu, takie jak nazwiska i adresy, które zostaną zastąpione odpowiadającymi danymi z twojej listy mailingowej.
- Kliknij Zakończ i scali > Wyślij wiadomości e-mail.
- W oknie dialogowym ustaw pole Do na kolumnę z twoimi adresami e-mail (EmailAddress), dodaj temat wiadomości i wybierz HTML jako format pocztowy dla najlepszej kompatybilności.
- Kliknij OK. Word wysyła jedną spersonalizowaną wiadomość e-mail do każdego odbiorcy przez Outlook. Kontakty z Outlooka mogą również być używane jako alternatywne źródło danych zamiast tabeli Excel, jeśli twoja lista kontaktów jest tam przechowywana.
Po zakończeniu scalania e-maili, sprawdź folder Wysłane elementy w Outlooku, aby potwierdzić, że wiadomości zostały wysłane. Każda wiadomość w liście pojawia się jako oddzielna wysłana wiadomość, jedna dla każdego odbiorcy.

Typowe problemy i rozwiązywanie problemów
Word nie może znaleźć pliku Excel lub zwraca błąd połączenia
Sprawdź, czy plik Excel jest zapisany i całkowicie zamknięty przed próbą połączenia go w Wordzie. Otwarty skoroszyt z niezapisanymi zmianami może blokować połączenie. Również potwierdź, że plik jest zapisany jako .xlsx zamiast .xls lub innego formatu.
Kody ZIP lub kody pocztowe są pozbawione wiodących zer
Dzieje się tak, gdy kolumna ZipCode w Excelu jest sformatowana jako liczba zamiast jako tekst. Otwórz tabelę, wybierz kolumnę ZipCode, sformatuj ją jako tekst, a następnie ponownie wprowadź wszystkie wartości, które straciły swoje wiodące zera. Pliki Excel muszą być ponownie zapisane i zamknięte przed ponownym połączeniem w Wordzie.
Pola scalania pokazują kody pól zamiast danych (np. {MERGEFIELD FirstName})
Naciśnij Alt + F9, aby przełączyć między wyświetlaniem kodu pola a wyświetlaniem wyników pola w Wordzie. To ustawienie wyświetlania, które nie wpływa na samo scalanie.
Okno dialogowe dopasowania pól pokazuje niemapowane pola
Dzieje się tak, gdy nazwy twoich kolumn nie odpowiadają nazwom, których Word oczekuje dla bloku adresowego. Kliknij Dopasuj pola w zakładce Korespondencji i ręcznie mapuj każdą nazwę kolumny do odpowiadającego pola Worda. Na przykład, mapuj swoją kolumnę "ZipCode" do pola "Kod pocztowy", jeśli Word nie rozpozna jej automatycznie.
Niektórzy odbiorcy są niezawarte w wyniku scalania
Otwórz panel odbiorców scalania korespondencji, klikając wybierz edytuj listę odbiorców w zakładce Korespondencji. Sprawdź, czy którykolwiek z wierszy nie został przypadkowo odznaczony. Również potwierdź, czy nie ma pustych wierszy w twoim zakresie danych w tabeli Excel, ponieważ mogą one spowodować, że Word przestanie czytać wpisy danych, zanim dotrze do końca listy.
Scalanie e-maili wysyła się, ale odbiorcy nie otrzymują wiadomości
Upewnij się, że Outlook jest otwarty i ustawiony jako domyślny program pocztowy przed uruchomieniem scalania. Sprawdź folder Wysłane elementy w Outlooku, aby zobaczyć, czy wiadomości zostały wysłane. Jeśli korzystasz z nowej wersji Outlooka, zwróć uwagę, że niektóre wersje mają ograniczoną obsługę scalania e-maili w porównaniu do klasycznej wersji Outlook.
Szybkie odniesienie: Scalanie korespondencji z Excela do Worda
| Zadanie | Gdzie to znaleźć | Uwagi |
|---|---|---|
| Rozpocznij scalanie korespondencji | Zakładka Korespondencji > Rozpocznij scalanie korespondencji | Wybierz Listy, Etykiety lub Wiadomości E-mail |
| Połącz plik Excel | Wybierz odbiorców > Użyj istniejącej listy | Plik musi być zapisany i zamknięty |
| Dodaj blok adresów | Grupa Wstaw pola > Blok adresów | Użyj Dopasuj pola do mapowania kolumn |
| Wstaw indywidualne pola | Grupa Wstaw pola > Wstaw pola scalania | Jedno pole na nazwę pola scalania |
| Dodaj linię powitania | Zakładka Korespondencji > Linia powitania | Wybierz format linii powitania w dialogu |
| Podgląd scalania | Zakładka Korespondencji > Podgląd wyników | Użyj strzałek lewo i prawo, aby sprawdzić rekordy |
| Zakończ scalanie do pliku | Zakończ i scali > Edytuj indywidualne dokumenty | Tworzy nowy dokument z wszystkimi stronami |
| Drukuj dokumenty | Zakończ i scali > Drukuj dokumenty | Wysyła bezpośrednio do drukarki |
| Wyślij wiadomości e-mail | Zakończ i scali > Wyślij wiadomości e-mail | Wymaga Outlooka jako domyślnego programu pocztowego |
| Edytuj listę odbiorców | Wybierz Edytuj listę odbiorców | Filtruj, sortuj lub odznacz wiersze |
Dla deweloperów: Twórz i waliduj dane scalania korespondencji Excel z IronXL
Jeśli twoja aplikacja generuje źródło danych Excel, które jest podstawą procesu scalania korespondencji, jakość i formatowanie tego pliku bezpośrednio decyduje o tym, czy scalanie się powiedzie. IronXL to biblioteka .NET, która pozwala deweloperom C# na programowe tworzenie, odczytywanie i formatowanie plików Excel bez konieczności instalowania Microsoft Office na serwerze lub komputerze deweloperskim.
Najczęstsze punkty awarii w plikach danych scalania korespondencji to brakujące nagłówki, scalone komórki, niepoprawnie wpisane kody ZIP i puste wiersze w zakresie danych. IronXL daje pełną kontrolę programową nad każdą komórką, formatem kolumny i typem danych, zanim plik zostanie przekazany do Worda, eliminując te problemy u źródła.
Oto jak stworzyć poprawnie ustrukturyzowany plik Excel listy mailingowej z IronXL, z wszystkimi nagłówkami kolumn w pierwszym wierszu Arkusza 1 i kolumną ZipCode sformatowaną jako tekst:
using IronXL;
// Create a new workbook - data must be on the first sheet for mail merge
WorkBook workBook = WorkBook.Create(ExcelFileFormat.XLSX);
WorkSheet workSheet = workBook.DefaultWorkSheet;
workSheet.Name = "Sheet1";
// Set column headers in row 1 - these become the merge field names in Word
string[] headers = {
"FirstName", "LastName", "Salutation", "Company",
"Address", "City", "State", "ZipCode", "EmailAddress"
};
for (int i = 0; i < headers.Length; i++)
{
var headerCell = workSheet.GetCell(0, i);
headerCell.Value = headers[i];
headerCell.Style.Font.Bold = true;
}
// Add recipient data rows
var recipients = new[]
{
new[] { "James", "Carter", "Mr.", "Carter & Associates", "142 Oak Lane", "Chicago", "IL", "60601", "j.carter@carterassoc.com" },
new[] { "Sarah", "Mitchell", "Ms.", "Blue Ridge Consulting", "890 Maple Avenue", "Austin", "TX", "78701", "s.mitchell@blueridge.com" },
new[] { "Robert", "Nguyen", "Mr.", "Nguyen Legal Group", "55 Harbor View", "Seattle", "WA", "98101", "r.nguyen@nguyenlegal.com" },
};
for (int row = 0; row < recipients.Length; row++)
{
for (int col = 0; col < recipients[row].Length; col++)
{
var cell = workSheet.GetCell(row + 1, col);
cell.Value = recipients[row][col];
// Format ZipCode column (index 7) as text to preserve leading zeros
// This prevents postal codes like "02101" from dropping to "2101"
if (col == 7)
{
cell.FormatString = "@"; // @ = text format in Excel
}
}
}
// Save - file must be closed before Word can link to it for mail merge
workBook.SaveAs("mailing-list.xlsx");
using IronXL;
// Create a new workbook - data must be on the first sheet for mail merge
WorkBook workBook = WorkBook.Create(ExcelFileFormat.XLSX);
WorkSheet workSheet = workBook.DefaultWorkSheet;
workSheet.Name = "Sheet1";
// Set column headers in row 1 - these become the merge field names in Word
string[] headers = {
"FirstName", "LastName", "Salutation", "Company",
"Address", "City", "State", "ZipCode", "EmailAddress"
};
for (int i = 0; i < headers.Length; i++)
{
var headerCell = workSheet.GetCell(0, i);
headerCell.Value = headers[i];
headerCell.Style.Font.Bold = true;
}
// Add recipient data rows
var recipients = new[]
{
new[] { "James", "Carter", "Mr.", "Carter & Associates", "142 Oak Lane", "Chicago", "IL", "60601", "j.carter@carterassoc.com" },
new[] { "Sarah", "Mitchell", "Ms.", "Blue Ridge Consulting", "890 Maple Avenue", "Austin", "TX", "78701", "s.mitchell@blueridge.com" },
new[] { "Robert", "Nguyen", "Mr.", "Nguyen Legal Group", "55 Harbor View", "Seattle", "WA", "98101", "r.nguyen@nguyenlegal.com" },
};
for (int row = 0; row < recipients.Length; row++)
{
for (int col = 0; col < recipients[row].Length; col++)
{
var cell = workSheet.GetCell(row + 1, col);
cell.Value = recipients[row][col];
// Format ZipCode column (index 7) as text to preserve leading zeros
// This prevents postal codes like "02101" from dropping to "2101"
if (col == 7)
{
cell.FormatString = "@"; // @ = text format in Excel
}
}
}
// Save - file must be closed before Word can link to it for mail merge
workBook.SaveAs("mailing-list.xlsx");
Imports IronXL
' Create a new workbook - data must be on the first sheet for mail merge
Dim workBook As WorkBook = WorkBook.Create(ExcelFileFormat.XLSX)
Dim workSheet As WorkSheet = workBook.DefaultWorkSheet
workSheet.Name = "Sheet1"
' Set column headers in row 1 - these become the merge field names in Word
Dim headers As String() = {
"FirstName", "LastName", "Salutation", "Company",
"Address", "City", "State", "ZipCode", "EmailAddress"
}
For i As Integer = 0 To headers.Length - 1
Dim headerCell = workSheet.GetCell(0, i)
headerCell.Value = headers(i)
headerCell.Style.Font.Bold = True
Next
' Add recipient data rows
Dim recipients = {
New String() { "James", "Carter", "Mr.", "Carter & Associates", "142 Oak Lane", "Chicago", "IL", "60601", "j.carter@carterassoc.com" },
New String() { "Sarah", "Mitchell", "Ms.", "Blue Ridge Consulting", "890 Maple Avenue", "Austin", "TX", "78701", "s.mitchell@blueridge.com" },
New String() { "Robert", "Nguyen", "Mr.", "Nguyen Legal Group", "55 Harbor View", "Seattle", "WA", "98101", "r.nguyen@nguyenlegal.com" }
}
For row As Integer = 0 To recipients.Length - 1
For col As Integer = 0 To recipients(row).Length - 1
Dim cell = workSheet.GetCell(row + 1, col)
cell.Value = recipients(row)(col)
' Format ZipCode column (index 7) as text to preserve leading zeros
' This prevents postal codes like "02101" from dropping to "2101"
If col = 7 Then
cell.FormatString = "@" ' @ = text format in Excel
End If
Next
Next
' Save - file must be closed before Word can link to it for mail merge
workBook.SaveAs("mailing-list.xlsx")
Aby odczytać i zwalidować istniejący plik Excel przed podłączeniem go do przepływu pracy scalania korespondencji, IronXL umożliwia łatwe sprawdzenie wymaganej struktury:
using IronXL;
WorkBook workBook = WorkBook.Load("mailing-list.xlsx");
// Always read from the first sheet for mail merge compatibility
WorkSheet firstSheet = workBook.DefaultWorkSheet;
// Verify the first row contains column headers, not data
string firstHeader = firstSheet["A1"].StringValue;
Console.WriteLine($"First column header: {firstHeader}");
// Read all recipient data rows
foreach (var row in firstSheet.Rows.Skip(1)) // Skip header row
{
string firstName = row[0].StringValue;
string lastName = row[1].StringValue;
string zipCode = row[7].StringValue; // Read as string to preserve leading zeros
Console.WriteLine($"{firstName} {lastName} - ZIP: {zipCode}");
}
using IronXL;
WorkBook workBook = WorkBook.Load("mailing-list.xlsx");
// Always read from the first sheet for mail merge compatibility
WorkSheet firstSheet = workBook.DefaultWorkSheet;
// Verify the first row contains column headers, not data
string firstHeader = firstSheet["A1"].StringValue;
Console.WriteLine($"First column header: {firstHeader}");
// Read all recipient data rows
foreach (var row in firstSheet.Rows.Skip(1)) // Skip header row
{
string firstName = row[0].StringValue;
string lastName = row[1].StringValue;
string zipCode = row[7].StringValue; // Read as string to preserve leading zeros
Console.WriteLine($"{firstName} {lastName} - ZIP: {zipCode}");
}
Imports IronXL
Dim workBook As WorkBook = WorkBook.Load("mailing-list.xlsx")
' Always read from the first sheet for mail merge compatibility
Dim firstSheet As WorkSheet = workBook.DefaultWorkSheet
' Verify the first row contains column headers, not data
Dim firstHeader As String = firstSheet("A1").StringValue
Console.WriteLine($"First column header: {firstHeader}")
' Read all recipient data rows
For Each row In firstSheet.Rows.Skip(1) ' Skip header row
Dim firstName As String = row(0).StringValue
Dim lastName As String = row(1).StringValue
Dim zipCode As String = row(7).StringValue ' Read as string to preserve leading zeros
Console.WriteLine($"{firstName} {lastName} - ZIP: {zipCode}")
Next
IronXL działa na .NET 6 i nowszych, i jest w pełni kompatybilny z Windows, Linux, macOS, Docker i Azure, co czyni go odpowiednim do generowania plików danych scalania korespondencji z aplikacji po stronie serwera, zadań czasowych lub API webowych bez jakiejkolwiek zależności od Microsoft Office.
Rozpoczęcie: Zainstaluj przez NuGet za pomocą Install-Package IronXL.Excel. Dostępny jest bezpłatny okres próbny z 30 dniami pełnej funkcjonalności i bez potrzeby posiadania karty kredytowej.
Dalsza lektura:
Podsumowanie
Uruchamianie scalania korespondencji z arkusza Excel to jeden z najbardziej niezawodnych sposobów na masowe produkowanie spersonalizowanych listów, etykiet pocztowych i wiadomości e-mail. Proces sprowadza się do trzech kluczowych kroków: budowy czystej listy mailingowej w Excelu z poprawnie sformatowanymi danymi na pierwszym arkuszu, połączenia tego pliku z Wordem przez zakładkę Korespondencji używając opcji Użyj istniejącej listy, oraz precyzyjnego rozmieszczenia pól scalania tam, gdzie powinna pojawić się każda część danych odbiorcy.
Po połączeniu źródła danych narzędzia do wstawiania pól i bloku adresowego w Wordzie przejmują ciężką pracę. Podglądaj wyniki za pomocą strzałek lewo i prawo przed zakończeniem scalania, by wychwycić wszelkie problemy z formatowaniem, niewłaściwie ustawione pola czy brakujące kody pocztowe zanim dotrą do odbiorcy. Po zakończeniu scalania korespondencji, możesz zdecydować się na zapisanie scalonego dokumentu, co utrzymuje połączenie ze źródłem danych, umożliwiając przyszłe korzystanie bez konieczności ponownego podłączania.
Dla zespołów deweloperskich, których aplikacje generują lub przekształcają dane Excel, które trafiają do procesu scalania korespondencji, IronXL oferuje prosty interfejs API do tworzenia poprawnie ustrukturalizowanych, odpowiednio sformatowanych plików arkuszy kalkulacyjnych w .NET bez zależności od Office. Rozpocznij od bezpłatnego okresu próbnego, aby eksplorować pełny zestaw funkcji w swoim własnym środowisku.
Pytania dotyczące konkretnego scenariusza scalania korespondencji lub kroku, który nie zadziałał tak, jak oczekiwano? Zostaw komentarz poniżej lub odwiedź blog Iron Software dla dalszej pomocy z automatyzacją Excel, formatowaniem danych i generowaniem dokumentów.




