Ngôn ngữ lập trình C# bao gồm các khả năng giúp làm việc với các đối tượng Microsoft Office API dễ dàng hơn. Với sự ra đời của các đối số được đặt tên và tùy chọn, việc giới thiệu kiểu động trong. NET và khả năng truyền đối số cho tham số tham chiếu trong phương thức COM, C# 4. 0 nhanh chóng trở thành ngôn ngữ được lựa chọn để làm việc với các đối tượng COM và Interop
Bài viết này nói về các đối tượng tương tác văn phòng trong C# và cách bạn có thể sử dụng chúng để tương tác với Microsoft Word và Microsoft Excel. Các ví dụ mã cũng được cung cấp để minh họa các khái niệm được đề cập
Điều kiện tiên quyết để làm việc với các đối tượng Interop
Visual Studio 2019 hoặc Visual Studio 2022 phải được cài đặt trên máy tính của bạn để hoạt động với các mẫu mã được trình bày trong hướng dẫn C# này. Trong ví dụ này, chúng tôi sẽ sử dụng Visual Studio 2022. Nếu bạn chưa cài đặt nó trong máy tính của mình, bạn có thể tải xuống từ đây
Khi viết bài này, Visual Studio 2022 RC 2 đã được phát hành. Bạn cũng nên cài đặt Microsoft Office Excel 2007 hoặc Microsoft Office Word 2007 [hoặc các phiên bản mới hơn] trên máy tính của mình
Đọc. Mẹo tái cấu trúc mã cho C#
Cách tạo ứng dụng bảng điều khiển mới trong Visual Studio
Trong phần này, chúng ta sẽ xem xét cách chúng ta có thể tạo dự án ứng dụng bảng điều khiển mới trong Visual Studio 2022. Giả sử Visual Studio 2022 đã được cài đặt trên hệ thống của bạn, hãy làm theo các bước dưới đây để tạo dự án Ứng dụng bảng điều khiển mới
- Khởi động Visual Studio 2022 IDE
- Nhấp vào “Tạo dự án mới. ”
- Trong trang “Tạo dự án mới”, chọn C# trong danh sách ngôn ngữ thả xuống, Windows từ danh sách Nền tảng và Bảng điều khiển từ danh sách “Loại dự án”
- Chọn Ứng dụng bảng điều khiển [. NET Framework] từ các mẫu dự án được hiển thị
- Bấm tiếp
- Trong màn hình “Định cấu hình dự án mới của bạn”, hãy chỉ định tên dự án và vị trí bạn muốn tạo dự án
- Trước khi chuyển sang màn hình tiếp theo, bạn có thể tùy ý chọn hộp kiểm “Đặt giải pháp và dự án trong cùng một thư mục”.
- Bấm tiếp
- Trong màn hình Thông tin bổ sung, chỉ định phiên bản Framework bạn muốn sử dụng. Chúng tôi sẽ sử dụng. Khung lưới 4. 8 trong ví dụ này
- Nhấp vào Tạo để hoàn tất quy trình
Điều này sẽ tạo ra một cái mới. NET Framework Console ứng dụng trong Visual Studio 2022. Chúng tôi sẽ sử dụng dự án này trong các phần tiếp theo
Cài đặt gói NuGet
Cài đặt các thư viện sau từ NuGet bằng Trình quản lý gói NuGet hoặc từ Bảng điều khiển trình quản lý gói NuGet
Microsoft.Office.Interop.Word Microsoft.Office.Interop.Excel
Đọc. Làm việc với toán tử C# Math
Cách lập trình các đối tượng tương tác văn phòng trong C#
Trong phần này, chúng ta sẽ xem xét cách làm việc với các đối tượng Office Interop và sử dụng chúng để kết nối với Microsoft Word và Excel cũng như đọc/ghi dữ liệu
Bạn phải thêm các lệnh sử dụng sau vào chương trình của mình để làm việc với Word và Excel tương ứng khi sử dụng các đối tượng tương tác của Office
using Microsoft.Office.Interop.Excel; using Microsoft.Office.Interop.Word;
Làm việc với các đối tượng tương tác trong Excel trong C#
Để bắt đầu, hãy tạo một tài liệu Excel mới có tên Kiểm tra. xlsx dưới dạng tệp Excel mẫu có trong thư mục gốc của tệp D. \> lái xe. Chúng tôi sẽ sử dụng tệp này trong ví dụ sau
Bạn nên tạo một thể hiện của lớp Ứng dụng liên quan đến Microsoft. Văn phòng. tương tác. Thư viện Excel để giao tiếp với Excel. Để thực hiện việc này, hãy viết mã C# sau
Application excelApplication = new Application[];
Bước tiếp theo là tạo một thể hiện của lớp Workbook để truy cập Workbook trong Excel. Bạn có thể tạo một phiên bản Workbook bằng mã sau
Workbook excelWorkBook = excel.Workbooks.Open[@"D:\Test.xslx"];
Để đọc tên của sổ làm việc, bạn có thể sử dụng thuộc tính Tên của phiên bản sổ làm việc như được minh họa trong đoạn mã dưới đây
string workbookName = excelWorkBook.Name;
Đoạn mã sau minh họa cách bạn có thể hiển thị giá trị của ô đầu tiên trong trang tính đầu tiên của tài liệu Excel
int worksheetcount = excelWorkBook.Worksheets.Count; if [worksheetcount > 0] { Worksheet worksheet = [Worksheet] excelWorkBook.Worksheets[1]; string worksheetName = worksheet.Name; var data = [[Range] worksheet.Cells[row, column]].Value; Console.WriteLine[data]; } else { Console.WriteLine["No worksheets available"]; }
Đây là danh sách mã hoàn chỉnh để bạn tham khảo
using Microsoft.Office.Interop.Excel; using Microsoft.Office.Interop.Word; using System; using System.Runtime.InteropServices; namespace OfficeInteropDemoApp { class Program { static void Main[string[] args] { string filename = @"D:\Test.xlsx"; DisplayExcelCellValue[filename, 1, 1]; Console.Read[]; } static void DisplayExcelCellValue[string filename, int row, int column] { Microsoft.Office.Interop.Excel.Application excelApplication = null; try { excelApplication = new Microsoft.Office.Interop.Excel.Application[]; Workbook excelWorkBook = excelApplication.Workbooks.Open[filename]; string workbookName = excelWorkBook.Name; int worksheetcount = excelWorkBook.Worksheets.Count; if [worksheetcount > 0] { Worksheet worksheet = [Worksheet]excelWorkBook.Worksheets[1]; string firstworksheetname = worksheet.Name; var data = [[Microsoft.Office.Interop.Excel.Range] worksheet.Cells[row, column]].Value; Console.WriteLine[data]; } else { Console.WriteLine["No worksheets available"]; } } catch [Exception ex] { Console.WriteLine[ex.Message]; } finally { if [excelApplication != null] { excelApplication.Quit[]; Marshal.FinalReleaseComObject[excelApplication]; } } } } }
Tham khảo danh sách mã được đưa ra ở trên. Lưu ý, khối cuối cùng của phương thức DisplayExcelCellValue. Phương thức Quit được gọi trên phiên bản ứng dụng Excel để dừng ứng dụng. Cuối cùng, một cuộc gọi đến Marshall. FinalReleaseComObject đặt bộ đếm tham chiếu của phiên bản ứng dụng Excel thành 0
Danh sách mã sau đây minh họa cách bạn có thể tạo một tài liệu Excel mới bằng cách sử dụng Office Interop trong C#. Lưu ý cách một sổ làm việc mới đã được tạo
static void CreateExcelDocument[] { Microsoft.Office.Interop.Excel.Application excelApplication = null; try { excelApplication = new Microsoft.Office.Interop.Excel.Application[]; Workbook excelWorkBook = excelApplication.Workbooks.Add[]; Worksheet worksheet = [Worksheet] excelWorkBook.Worksheets[1]; worksheet.Cells[1, 1] = "Product Id"; worksheet.Cells[1, 2] = "Product Name"; worksheet.Cells[2, 1] = "1"; worksheet.Cells[2, 2] = "Lenovo Laptop"; worksheet.Cells[3, 1] = "2"; worksheet.Cells[3, 2] = "DELL Laptop"; excelWorkBook.SaveAs[@"D:\Test.xls"]; } catch[Exception ex] { Console.WriteLine[ex.Message]; } finally { if [excelApplication != null] { excelApplication.Quit[]; Marshal.FinalReleaseComObject[excelApplication]; } } }
Khi bạn chạy mã này, một tài liệu Excel mới sẽ được tạo tại đường dẫn được chỉ định với nội dung sau bên trong
Đọc. Làm việc với chuỗi trong C#
Làm việc với các đối tượng tương tác trong Word trong C#
Để làm việc với Microsoft Word, bạn cần tạo một phiên bản của Microsoft. Văn phòng. tương tác. Từ. Đăng kí. Giống như Excel, phiên bản này sẽ được sử dụng để giao tiếp với tài liệu Word
________số 8Bước tiếp theo là tạo một thể hiện tài liệu bằng thuộc tính Documents của Microsoft. Văn phòng. tương tác. Từ. Phiên bản ứng dụng chúng tôi vừa tạo, như được hiển thị trong đoạn mã C# được cung cấp bên dưới
wordApplication.Documents.Add[];
Tiếp theo, bạn có thể tạo một đoạn văn và thêm một số văn bản vào đó bằng cách sử dụng như trong đoạn mã hiển thị bên dưới
using Microsoft.Office.Interop.Excel; using Microsoft.Office.Interop.Word;0
Sau đó, bạn có thể lưu tài liệu Word bằng mã này
using Microsoft.Office.Interop.Excel; using Microsoft.Office.Interop.Word;1
Dưới đây là danh sách mã hoàn chỉnh chỉ ra cách làm việc với Microsoft Word Interop Objects trong C# để bạn tham khảo
using Microsoft.Office.Interop.Excel; using Microsoft.Office.Interop.Word;2
Để đọc tài liệu Word và hiển thị từng từ của tài liệu, bạn có thể sử dụng mã C# sau
using Microsoft.Office.Interop.Excel; using Microsoft.Office.Interop.Word;3
Lưu ý cách thuộc tính Words của phiên bản ứng dụng Word đã được sử dụng để truy xuất các từ có trong tài liệu
Hướng dẫn đối tượng tương tác C#
Trong bài viết này, chúng tôi đã kiểm tra cách chúng tôi có thể truy cập các đối tượng Microsoft Office Interop bằng C#. Vì vẫn chưa hỗ trợ làm việc với các đối tượng Interop trong. NET Core, chúng tôi đã tạo một. NET Framework Console Application trong ví dụ này