Tôi đã bắt đầu sử dụng các hội đồng interop của Excel được Microsoft cung cấp cho một trong các ứng dụng C# của tôi. Mọi thứ đều ổn, nhưng có vẻ như thiếu sự đánh máy mạnh mẽ, và thành thật mà nói nó giống như tôi đang viết mã VBA. Có cách nào khác để tương tác với Excel từ C# có thể mang đến trải nghiệm OO tốt hơn không? Tôi đang sử dụng VS2010 và .Net 4.0 bằng cách này.excel interop thay thế
Trả lời
Hãy nhìn vào các dự án EPPlus qua tại CodePlex:
Gần đây tôi đã sử dụng này và nó làm việc rất tốt. (VS2010 và .Net4)
EPPlus là thư viện .net đọc và ghi tệp Excel 2007/2010 sử dụng định dạng Open Office Xml (xlsx).
đẹp ví dụ trang: http://epplus.codeplex.com/wikipage?title=ContentSheetExample
Bạn đang tìm kiếm loại tương tác nào? Chỉ cần viết? đọc hiểu? Kiểm soát hoàn toàn mọi khía cạnh?
Có rất nhiều thư viện của bên thứ ba để thao tác các tài liệu Excel, đặc biệt nếu bạn ở định dạng xlsx (2007 hoặc mới hơn). Nếu bạn chỉ đơn giản là viết những điều trên, thậm chí có cả các triển khai mã nguồn mở mà bạn có thể xem (ví dụ: Sourceforge có số Excel Writer).
ExcelLibrary là tuyệt vời. http://code.google.com/p/excellibrary/
Lưu ý rằng đây là trước Office 2007 và không hỗ trợ định dạng tệp mới. – Fosco
Tự động hóa OLE là cách tiêu chuẩn của Windows cho các ứng dụng để giao tiếp, trừ Clipboard. Bởi vì không phải mọi ngôn ngữ cần OLE đều có generics (hoặc thậm chí là gõ tĩnh mạnh), giao diện nhất thiết phải rất chung chung.
Nếu bạn chỉ đơn giản từ chối sử dụng OLE, bạn có thể sử dụng máy chủ lưu trữ Windows để di chuyển xung quanh GUI và lấy dữ liệu theo cách đó hoặc quét màn hình bằng các DLL WinAPI. Bạn cũng có thể viết hoặc vuốt một ETL cho các tệp Excel dựa trên các tiêu chuẩn tài liệu cho các tệp XLS và XLSX. Bất kỳ cách nào bạn cắt nó, tôi nghĩ rằng những bất lợi khi làm việc với OLE được giảm thiểu bởi lợi thế cực độ mà bạn không phải cố gắng tương tác với Excel theo bất kỳ cách nào khác.
Tùy thuộc vào những gì bạn đang cố gắng làm, như tạo tài liệu XLSX, bạn có thể sử dụng Open XML SDK.
Điều này thật tuyệt vời khi tạo tài liệu văn phòng; đặc biệt là vì nó không yêu cầu văn phòng phải được cài đặt để sử dụng.
Hoàn toàn miễn phí; API sạch đẹp và được hỗ trợ bởi Microsoft. Ví dụ:
public static void CreateNewWordDocument(string document)
{
using (WordprocessingDocument wordDoc = WordprocessingDocument.Create(document, WordprocessingDocumentType.Document))
{
// Set the content of the document so that Word can open it.
MainDocumentPart mainPart = wordDoc.AddMainDocumentPart();
SetMainDocumentContent(mainPart);
}
}
Ví dụ từ: http://msdn.microsoft.com/en-us/library/bb497758.aspx. Có các ví dụ để làm việc với Bảng tính here.
Nếu bạn đang cố gắng tương tác trực tiếp với Excel (Giống như tự động hóa giao diện người dùng); không tạo ra một tài liệu; thì câu trả lời của KeithS là tôi sẽ đi như thế nào.
Chăm sóc cử tri xuống để bình luận? – vcsjones
Thư viện NetOffice là một thay thế cho Hội đồng Interop Office chính (PIA). NetOffice cung cấp một bộ các thư viện interop độc lập với phiên bản, vì vậy bạn có thể hỗ trợ tất cả các phiên bản Office với ứng dụng của mình và bao gồm IntelliSense để cho bạn thấy những phương thức nào có sẵn theo phiên bản Office nào.
NetOffice cũng giúp một chút trong việc theo dõi các tham chiếu COM, đôi khi có thể là một cơn đau trong .NET/COM interop.
- 1. C# và Excel interop
- 2. Microsoft Interop: Tên Cột Excel
- 3. In Excel bằng cách sử dụng Interop
- 4. Excel Interop - Hiệu quả và hiệu suất
- 5. Làm thế nào để lưu/ghi đè tệp Excel hiện có bằng Excel Interop - C#
- 6. Đường lưới trong excel qua interop
- 7. Excel COM Interop - tlbimp vs primary WrapperTool
- 8. Lưu XLS Sử dụng Interop Excel
- 9. Lưu Bảng tính Excel bằng cách sử dụng Interop C#
- 10. C# -excel interop - tạo biểu đồ trên sổ làm việc thay vì trong một trang tính
- 11. C# Excel interop, đặt ngắt dòng trong văn bản của ô trong Excel
- 12. Tài nguyên cho việc học C# Excel interop
- 13. C# Excel interop: Ngoại lệ từ HRESULT (DISP_E_BADINDEX)
- 14. Văn bản thay thế trong mã VBA của tệp Excel
- 15. C# Định dạng Excel Interop giống như định dạng của Excel dưới dạng bảng
- 16. Vấn đề C# và Excel Interop, Lưu tệp excel không mịn
- 17. Làm thế nào để tải một Excel Addin bằng cách sử dụng Interop
- 18. Làm thế nào để tiêm mã VBA vào Excel .xlsm mà không cần sử dụng Interop?
- 19. Quá trình Excel vẫn mở sau khi interop; phương pháp truyền thống không hoạt động
- 20. Sử dụng đối tượng Wrapper để đúng dọn dẹp excel interop đối tượng
- 21. C# Excel Interop: Quá trình Excel vẫn còn trong bộ nhớ cho đến khi form cha đóng
- 22. Excel: thay thế một phần giá trị chuỗi của ô
- 23. Chiến lược thay thế hoặc di chuyển cho Excel/Access
- 24. Thay thế cho Trình chỉnh sửa Excel VBA?
- 25. Làm cách nào để tự động kích thước cột thông qua các đối tượng interop Excel?
- 26. Cách nhanh nhất để ghi các ô vào Excel bằng Office Interop?
- 27. viết văn bản dài trong sổ làm việc excel bằng cách sử dụng interop ném lỗi?
- 28. Excel Interop - Thêm trang tính mới sau khi tất cả các trang khác
- 29. ClojureScript interop
- 30. Thay đổi tên hộp kiểm mẫu excel
Vấn đề chính bạn gặp phải là gì? Bạn nhận được rất nhiều loại động và không có intellisense hoặc là nó mô hình đối tượng văn phòng đó là (theo thiết kế) rất chung chung? – Eddy
Tôi nghĩ bạn có nghĩa là nhập "mạnh" và không phải là "chuỗi". – Davy8