Tôi có một ứng dụng đơn giản C# mà phải viết một số giá trị trong một phạm vi excel của một trang tính cụ thể. Tôi tạo ra một thể hiện của ứng dụng Excel nếu không tồn tại, nhưng nếu tồn tại tôi muốn thiết lập hoạt động và lấy một thể hiện nếu nó sử dụng trong mã của tôi.Lấy ví dụ về ứng dụng Excel với C# bằng cách xử lý
tôi sử dụng mã này để tạo ra một ứng dụng mới:
Microsoft.Office.Interop.Excel app =
new Microsoft.Office.Interop.Excel.Application();
app.Visible = true;
Để có được xử lý của cửa sổ excel hoạt động tôi sử dụng api này
[DllImportAttribute("User32.dll")]
private static extern int FindWindow(String ClassName, String WindowName);
Làm thế nào tôi có thể có được một thể hiện của ứng dụng excel bởi một tay cầm?
int hWnd = FindWindow(null, "Microsoft Excel - MySheet.xlsx");
Microsoft.Office.Interop.Excel app = ....(hWnd)
Đối với tôi, 'instance = new Excel.ApplicationClass();' không hoạt động. Tôi đã phải sử dụng 'instance = new Excel.Application();'. –
@DavidMurdoch đây là kết quả của một [thay đổi trong VS2010 để nhúng các loại interop] (http://blogs.msdn.com/b/mshneer/archive/2009/12/07/interop-type-xxx-cannot-be -embedded-use-the-apply-interface-instead.aspx). Việc chuyển sang 'Application()' trên 'ApplicationClass()' là một cách giải quyết, bạn nhận được kết quả tương tự (mặc dù có vẻ như bạn đang tạo một giao diện!). – James