Jak stworzyc dokument Word w C#
Microsoft stworzył Word, aby służył jako edytor tekstu. Początkowo dostępny pod nazwą Multi-Tool Word dla systemów Xenix, został wprowadzony 25 października 1983 roku. Kolejne wersje zostały opracowane dla szerokiego zakresu systemów operacyjnych, takich jak SCO Unix (1990), Microsoft Windows (1989), Atari ST (1988), OS/2 (1989), AT&T UNIX PC (1985), IBM PC z DOS (1983), Apple Macintosh z klasycznym macOS (1985), macOS (2001), przeglądarki internetowe (2010), iOS (2014) i Android (2015). Wine można użyć do uruchomienia starszych wersji Microsoft Word na Linux.
Komercyjne wersje Word można licencjonować jako samodzielne aplikacje lub jako część komponentu Microsoft 365, który można zakupić jako licencję wieczystą lub jako część subskrypcji Microsoft 365. W tym artykułe zmanipulujemy dokumentami Word za pomoca C# z pomoca zespolów Microsoft Interop i zbadamy jak IronXL pomaga nam w edytowaniu dokumentów Excel.
How To Manipulate Word Document Using C
- Stwórz zupełnie nowy projekt Visual Studio.
- Ustaw niezbędną bibliotekę do odczytywania dokumentów Word.
- Aby manipulować dokumentem Word, załaduj istniejący plik lub utwórz nowy plik.
- Edytuj dane dokumentu i sparsuj plik.
- Usuń wszystkie obiekty, które zostały utworzone.
Co to jest Microsoft Interop
Programy napisane w C# lub VB.NET mogą tworzyć lub otwierać dokumenty Word (DOC, DOCX i RTF) z Interoperacją dla Microsoft Word. Ma jednak wiele wad, gdy jest używany w projektach.
Omówimy częste problemy, z jakimi możesz się spotkać, korzystając z Microsoft Office Interop (Automatyzacji Word) z C# lub VB.NET w tym artykule.
Na przykład:
- Każdy komputer kliencki wymagany do automatyzacji Word musi mieć licencję na Microsoft Word.
- Na każdym komputerze klienckim musi być zainstalowana taka sama wersja Microsoft Word.
- Word zużywa kilka megabajtów RAM do załadowania różnych plików i DLL w tle, gdy automatyzacja jest używana.
- Microsoft Word API jest dostępny przez obiekt COM. Problemy mogą się pojawić przy wywoływaniu obiektu COM z zarządzanego kodu, takie jak konwersje typów, wymaga to wrapera COM i słabej integracji z .NET Framework.
Tworzenie nowego projektu w Visual Studio
Należy uruchomić Visual Studio i stworzyć projekt .NET, zanim będzie można używać biblioteki Interop. Visual Studio jest zgodne z każdą wersją, choć najnowsza jest zalecana. W zależności od potrzeb możesz albo stworzyć szablon projektu, albo aplikację, która przypomina Windows Forms. W tym przypadku będę używał aplikacji konsolowej dla prostoty.

Konfiguruj szczegóły projektu
Następnie podaj lokalizację i nazwę projektu.

Tworzenie nowego pliku projektu za pomocą .NET Framework
Korzystając z menu rozwijanego Framework, możesz wybrać .NET Framework. .NET Framework 4.7 będzie używany w tym projekcie. Następnym krokiem jest naciśnięcie przycisku "Utwórz".
Po wygenerowaniu rozwiązania przez aplikację można wpisać kod i zbudować lub uruchomić program, otwierając plik Program.cs.

Teraz, gdy biblioteka Microsoft.Office.Interop.Word została dodana, możemy przetestować kod.
Instalacja biblioteki Interop
Kolejna naprawa wymaga zainstalowania biblioteki Interop. Aby to osiągnąć, wprowadź następujące polecenie w Konsoli Menedżera Pakietów NuGet:
Install-Package Microsoft.Office.Interop.Word

Innym sposobem na znalezienie pakietu "Interop" jest użycie Menedżera Pakietów NuGet. Spośród wszystkich pakietów NuGet związanych z Interop, możemy wybrać wymagany pakiet do pobrania z tej listy.

Po zainstalowaniu wszystkich niezbędnych bibliotek można rozpocząć edycję plików DOCX.
Manipulowanie istniejącymi dokumentami Word za pomocą Interop
Aby używać Microsoft Word, najpierw trzeba utworzyć instancję Microsoft.Office.Interop.Word.Application. Komunikacja dokumentów Word będzie miała miejsce w tej instancji. Następnym krokiem jest utworzenie instancji nowego dokumentu Word, używając właściwości Documents instancji Microsoft.Office.Interop.Word.Application, którą właśnie stworzyliśmy. Jak widać w poniższym fragmencie kodu C#, to pozwala na programowalne manipulowanie dokumentami Word:
using System;
using Microsoft.Office.Interop.Word;
class Program
{
static void Main()
{
try
{
// Create a new instance of Word Application
var WordApp = new Microsoft.Office.Interop.Word.Application();
// Open an existing document
var WordDoc = WordApp.Documents.Open(@"d:/Demo.docx");
// Edit the content of the first paragraph
WordDoc.Paragraphs[1].Range.Text = "New text here...";
// Save the edited document
WordDoc.SaveAs(@"d:/NewDemo.docx");
// Close the document
WordDoc.Close();
// Quit the Word application
WordApp.Quit();
}
catch (Exception ex)
{
Console.WriteLine(ex.ToString());
}
}
}
using System;
using Microsoft.Office.Interop.Word;
class Program
{
static void Main()
{
try
{
// Create a new instance of Word Application
var WordApp = new Microsoft.Office.Interop.Word.Application();
// Open an existing document
var WordDoc = WordApp.Documents.Open(@"d:/Demo.docx");
// Edit the content of the first paragraph
WordDoc.Paragraphs[1].Range.Text = "New text here...";
// Save the edited document
WordDoc.SaveAs(@"d:/NewDemo.docx");
// Close the document
WordDoc.Close();
// Quit the Word application
WordApp.Quit();
}
catch (Exception ex)
{
Console.WriteLine(ex.ToString());
}
}
}
Imports System
Imports Microsoft.Office.Interop.Word
Friend Class Program
Shared Sub Main()
Try
' Create a new instance of Word Application
Dim WordApp = New Microsoft.Office.Interop.Word.Application()
' Open an existing document
Dim WordDoc = WordApp.Documents.Open("d:/Demo.docx")
' Edit the content of the first paragraph
WordDoc.Paragraphs(1).Range.Text = "New text here..."
' Save the edited document
WordDoc.SaveAs("d:/NewDemo.docx")
' Close the document
WordDoc.Close()
' Quit the Word application
WordApp.Quit()
Catch ex As Exception
Console.WriteLine(ex.ToString())
End Try
End Sub
End Class
W powyższym kodzie możemy edytować dokument Word w C#. Najpierw tworzymy instancję aplikacji Word za pomocą Interop. Następnie metoda Open jest używana do otwarcia istniejącego pliku Word, przekształcając go w obiekt dokumentu. Następnie możemy uzyskać dostęp do różnych właściwości i metod dostępnych do interakcji z dokumentem. W przykładzie aktualizujemy tekst pierwszego paragrafu, używając kolekcji Paragraphs i indeksu do określenia, który paragraf edytować. Na koniec zmiany są zapisywane za pomocą SaveAs, a dokument i aplikacja są poprawnie zamykane.
Alternatywa biblioteki IronXL dla Interop
IronXL jest alternatywą dla Microsoft Interop, która może być używana w programach .NET do obsługi plików Excel. Podczas gdy Microsoft Interop wymaga interakcji z Excel za pośrednictwem zespołów Interop, IronXL oferuje bardziej bezpośrednią, efektywną i potężną metodę programowego manipulowania plikami Excel w kontekstach .NET.
Korzystanie z IronXL zamiast Microsoft Interop ma kilka zalet, takich jak:
- Wydajność i efektywność zasobów: W porównaniu do Microsoft Interop, który zależy od zainstalowanej aplikacji Excel na komputerze, IronXL działa lepiej i wykorzystuje mniej zasobów, ponieważ nie zależy od aplikacji Excel.
- Łatwość użytkowania i prostota: IronXL zapewnia łatwiejsze w użyciu API, które upraszcza odczytywanie, pisanie i manipulowanie plikami Excel, bez komplikacji związanych z Microsoft Interop.
- Zgodność i zależności: IronXL eliminuje problemy z zależnościami i zgodnością, które mogą wystąpić w różnych wersjach Excel lub Office, nie wymagając instalacji Microsoft Excel na komputerze.
- Niezależność od platformy: W przeciwieństwie do Microsoft Interop, który może być ściślej związany z określonymi wersjami Microsoft Office, IronXL oferuje większą elastyczność i łatwość wdrażania w różnych środowiskach i platformach.
Dla programistów .NET, którzy muszą programowo działać z plikami Excel, IronXL jest często lepszym wyborem ze względu na łatwość użycia, szybkość i zmniejszone poleganie na zewnętrznych instalacjach oprogramowania. Decyzja między IronXL a Microsoft Interop mogłaby jednak być uzależniona od szczegółów projektu, istniejącej infrastruktury oraz poziomu zaawansowania użytkownika w każdej bibliotece.
Podczas podejmowania decyzji między tymi opcjami zawsze miej na uwadze wymagania swojej aplikacji. Zapoznaj się z tym linkiem, aby dowiedzieć się więcej o bibliotece IronXL.
Instalacja biblioteki IronXL
Ponieważ biblioteka IronXL jest potrzebna do nadchodzącej poprawki, zainstaluj ją. Aby to zakończyć, otwórz Konsolę Menedżera Pakietów NuGet i wpisz następujące polecenie:
Install-Package IronWord

Wyszukiwanie pakietu "IronXL" za pomocą Menedżera Pakietów NuGet jest dodatkową opcją. Z tej listy wszystkich pakietów NuGet związanych z IronXL możemy wybrać ten, który potrzebujemy pobrać.

Edytowanie dokumentów Excel za pomocą IronXL
Dane mogą być eksportowane do formatów XLSX lub XLS za pomocą kilku linii kodu. Poniższy przykład kodu źródłowego pokazuje, jak dane mogą być eksportowane z pliku Excel do prostego formatu tabeli:
using IronXL;
class Program
{
static void Main()
{
// Load an existing Excel file
var workbook = WorkBook.Load("Demo file.xlsx");
// Access the first sheet or the sheet by name
var ws = workbook.GetWorkSheet("Sheet1");
// Read a value from a cell and output it to the console
string address_val = ws["A1"].ToString();
Console.WriteLine(address_val);
// Modify a cell's value
ws["A2"].Value = "Hello World";
// Save the workbook to different formats
workbook.SaveAs("export.xlsx");
workbook.SaveAs("export.xls");
workbook.WorkSheets[0].SaveAs("export.xls");
}
}
using IronXL;
class Program
{
static void Main()
{
// Load an existing Excel file
var workbook = WorkBook.Load("Demo file.xlsx");
// Access the first sheet or the sheet by name
var ws = workbook.GetWorkSheet("Sheet1");
// Read a value from a cell and output it to the console
string address_val = ws["A1"].ToString();
Console.WriteLine(address_val);
// Modify a cell's value
ws["A2"].Value = "Hello World";
// Save the workbook to different formats
workbook.SaveAs("export.xlsx");
workbook.SaveAs("export.xls");
workbook.WorkSheets[0].SaveAs("export.xls");
}
}
Imports IronXL
Friend Class Program
Shared Sub Main()
' Load an existing Excel file
Dim workbook = WorkBook.Load("Demo file.xlsx")
' Access the first sheet or the sheet by name
Dim ws = workbook.GetWorkSheet("Sheet1")
' Read a value from a cell and output it to the console
Dim address_val As String = ws("A1").ToString()
Console.WriteLine(address_val)
' Modify a cell's value
ws("A2").Value = "Hello World"
' Save the workbook to different formats
workbook.SaveAs("export.xlsx")
workbook.SaveAs("export.xls")
workbook.WorkSheets(0).SaveAs("export.xls")
End Sub
End Class
Poprzedni przykład wczytuje istniejący plik Excel, wywołując funkcję Load, która przyjmuje jako argument ścieżkę i nazwę pliku. Import pliku do obiektu WorkBook jest teraz zakończony. Arkusze kalkulacyjne Excel są następnie wczytywane przy pomocy GetWorkSheet, co pozwala na wczytanie arkusza za pomocą nazwy arkusza. Następnie adres Excel był używany do odczytania wartości. Aby dowiedzieć się więcej o odczytywaniu plików Excel, kliknij tutaj.
Możemy zmienić wartości w arkuszu Excel, korzystając z tego samego adresu Excel. Dokument Excel może być zapisany jako plik XLSX lub XLS przy użyciu funkcji SaveAs oferowanej przez obiekt WorkBook. Dzięki temu procesowi cały plik jest zapisywany w wybranym formacie.

Dodatkowo możemy wybrać konkretny arkusz Excel, korzystając z jego wartości indeksu lub odnosząc się do niego po nazwie. Następnie, możemy wyeksportować dane z arkusza kalkulacyjnego Excel do innego pliku, używając opcji SaveAs. Kliknij ten link, aby dowiedzieć się więcej o formatowaniu i eksportowaniu plików Excel.
Wnioski
Jednym z najpopularniejszych dodatków do Excel jest IronXL. Nie zależy od żadnych dodatkowych zewnętrznych bibliotek. Nie jest konieczne instalowanie Microsoft Excel, ponieważ jest samowystarczalny. Działa poprzez wiele kanałów. Jest to w przeciwieństwie do biblioteki Interop, która musi przeanalizować plik przy użyciu dodatkowych bibliotek, aby edytować dokumenty Word.
Kompletnym rozwiązaniem dla każdego procesu programowania z wykorzystaniem dokumentów Microsoft Excel jest IronXL. Obliczenia, sortowanie ciągów znaków lub liczb, przycinanie, dodawanie, znajdowanie i zastępowanie, scalanie i rozdzielanie oraz przechowywanie plików to tylko kilka z wielu dostępnych operacji. Nie tylko dane arkusza kalkulacyjnego mogą być weryfikowane, ale także możesz tworzyć nowe formy danych komórek. Umożliwia odczytywanie i zapisywanie plików, a także obsługę danych Excel.
Kiedy IronXL został po raz pierwszy wydany, jego koszt wynosił $999. Alternatywnie, klienci mogą wybrać opłatę abonamentową na jeden rok, aby otrzymywać aktualizacje i wsparcie oprogramowania. Za opłatą IronXL zapewnia ochronę przed nieautoryzowaną redystrybucją. Przejdź na stronę licencyjną IronXL. Aby dowiedzieć się więcej o produktach Iron Software, sprawdź tutaj.
Często Zadawane Pytania
Jak mogę edytować dokumenty WORDa za pomocą języka C#?
Aby manipulować dokumentami programu Word za pomocą języka C#, można skorzystać z biblioteki Microsoft.Office.Interop.Word. Wymaga to utworzenia instancji aplikacji Word, otwarcia dokumentu, wprowadzenia zmian i zapisania dokumentu programowo.
Jakie są ograniczenia korzystania z Microsoft Interop do manipulacji dokumentami WORD?
Ograniczenia związane z użyciem Microsoft Interop obejmują konieczność posiadania licencjonowanej wersji programu WORD na każdym komputerze klienckim, potencjalne problemy z kompatybilnością wersji oraz zwiększone zużycie pamięci spowodowane procesami działającymi w tle.
Jak skonfigurować projekt C# w Visual Studio, aby pracować z dokumentami WORD?
W programie Visual Studio można utworzyć nowy projekt, wybierając opcję Aplikacja konsolowa, konfigurując niezbędne szczegóły projektu i upewniając się, że wybrano właściwą wersję .NET Framework. Następnie należy dodać odwołania do biblioteki Microsoft.Office.Interop.Word za pomocą menedżera pakietów NuGet.
Jakie są różnice między IronXL a Microsoft Interop w zakresie obsługi plików Excel?
IronXL oferuje przewagę nad Microsoft Interop, ponieważ nie wymaga instalacji programu Excel, zapewnia lepszą wydajność i posiada prostsze API do manipulacji plikami Excel. Eliminuje również problemy z kompatybilnością związane z metodą Interop.
Jak zainstalować IronXL w moim projekcie .NET?
Aby zainstalować IronXL w projekcie .NET, otwórz konsolę NuGet Package Manager w Visual Studio i wykonaj polecenie Install-Package IronXL.Excel. Możesz również wyszukać IronXL w interfejsie użytkownika NuGet Package Manager i zainstalować go bezpośrednio.
Jak edytować dokumenty Excel za pomocą IronXL w języku C#?
Za pomocą IronXL można edytować dokumenty Excel, ładując je za pomocą metody WorkBook.Load, uzyskując dostęp do określonych arkuszy, modyfikując wartości komórek i zapisując skoroszyt przy użyciu metod udostępnianych przez obiekty WorkBook i WorkSheet.
Jakie są zalety korzystania z IronXL do manipulacji plikami Excel?
IronXL zapewnia takie korzyści, jak lepsza wydajność, łatwość obsługi i niezależność od platformy. Nie wymaga instalacji programu Excel, co eliminuje problemy związane z zależnościami i pozwala na płynną integrację z aplikacjami .NET.
Czy mogę zautomatyzować zadania związane z dokumentami WORD bez korzystania z Microsoft Interop?
Tak, różne biblioteki innych firm oferują alternatywę dla Microsoft Interop do automatyzacji zadań związanych z dokumentami WORDa, zapewniając prostsze interfejsy API i eliminując konieczność instalacji programu Microsoft WORD.



