2012-03-16 20 views
6

Tôi muốn có thể cho phép người dùng nhập công thức tùy chỉnh vào một ô trong Excel sẽ đăng ký dữ liệu do ứng dụng .NET bên ngoài cung cấp. Ví dụ: người dùng có thể nhập ...Công nghệ thích hợp để kéo dữ liệu vào bảng tính excel thông qua một công thức từ một nguồn .NET là gì?

=getCurrentValue("ABC") 

Có ứng dụng .NET (C#) bên ngoài xác định giá trị "ABC" mỗi phút.

Ô sẽ hiển thị giá trị ban đầu của "ABC" từ ứng dụng bên ngoài và cập nhật khi ứng dụng bên ngoài gửi giá trị mới.

Trong quá khứ tôi nghĩ rằng ứng dụng bên ngoài sẽ là một máy chủ DDE và công thức sẽ là một công thức khách hàng DDE nhưng DDE dường như đã chết. Công nghệ "chính xác" để sử dụng để làm điều này là gì?

Lưu ý rằng bảng tính cần lấy dữ liệu qua công thức. Thông tin không đi vào tệp excel mẫu cố định nhưng vào bất kỳ bảng tính nào mà người dùng nhập vào công thức.

Cảm ơn,

John

+0

FWIW, tôi nghĩ câu hỏi rất rõ ràng Aske d, và tìm thấy mức độ không liên quan cao bất thường hiện diện trong các câu trả lời không được chấp nhận để hoàn toàn thổi tâm trí. – BrainSlugs83

Trả lời

5

Excel RTD (Real Time Data) là sự thay thế cho DDE. Nó cho phép bạn đẩy các giá trị vào một ô bất cứ khi nào các bản cập nhật có sẵn. Nếu quá trình cung cấp các bản cập nhật là một ứng dụng bên ngoài, việc thiết lập một kênh WCF giữa máy chủ RTD và ứng dụng bên ngoài sẽ cho phép bạn nạp các bản cập nhật thời gian thực vào Excel.

Dưới đây là một số liên kết:

+0

Có nhiều bài viết của anh ấy, xem danh sách trên http://weblogs.asp.net/kennykerr/pages/My-Articles.aspx – quetzalcoatl

-1

Bạn có thể liên lạc với tờ Excel qua Excel Api:

new Microsoft.Office.Interop.Excel.Application();

+0

Tuy nhiên, bạn có thể xem xét tệp CSV. Hầu hết các nhà cung cấp dịch vụ lưu trữ sẽ không cho phép Office trên máy chủ đó để bạn có thể ghi vào và tệp CSV. Mặc dù bạn có thể làm được nhiều hơn nữa với Microsoft.Office.Interop.Excel, thậm chí bạn có thể tạo vùng in và biểu đồ – ydd1987

+1

Giao diện excel xuất hiện để được nhắm mục tiêu tự động hóa các tác vụ excel hoặc đẩy dữ liệu vào excel. Nó có thể kích hoạt một yêu cầu DDE trong excel chẳng hạn. Tôi đã điều chỉnh câu hỏi để phản ánh chúng tôi muốn excel để kéo dữ liệu (mặc dù các bản cập nhật sẽ được đẩy trở lại khi excel đăng ký). DDE sẽ hoàn hảo nhưng nó dường như không còn được khuyến nghị nữa. Có một cơ chế để đăng ký một công thức/gọi lại/một cái gì đó thông qua interop? Nếu vậy bạn có thể chỉ cho tôi một ví dụ? –

+0

Một cái gì đó như thế này? oRng = oSheet.get_Range ("C2", "C6"); oRng.Formula = "= A2 & \" \ "& B2"; – ydd1987

Các vấn đề liên quan