2010-08-27 121 views
0

我有一個C#winform應用程序,它向用戶顯示交易信息。我們想要做的是能夠打開Excel表格並讓它從應用程序請求數據。作爲回報,應用程序將數據返回給excel。之後,如果數據在應用程序中更新,它也會反映在excel中。換句話說,我們讓excel顯示應用程序顯示的內容(只有在excel請求時才顯示)。與excel交互的winform應用程序

有誰知道我們需要做到這一點。

非常感謝。

回答

0

原文:

能在Excel中使用一個數據庫連接,直接查詢數據庫?
winform應用程序在哪裏存儲數據?

編輯:
我能想到的幾種方法:

  1. 使用Excel自動爲用戶選擇列生成電子表格。
    這可能比選項2慢。
  2. 在選擇列時,將信息保存到數據庫的配置表中。
    讓電子表格讀取此內容,並使用VBA調整表格以匹配應用程序。
    這比選項1更復雜,但要快得多。
+0

它存儲在本地數據庫(sqlite)中。但是這個想法是允許用戶操縱他在屏幕上看到的數據。前端的用戶選擇他感興趣的列,然後數據顯示在網格上。用戶可以創建許多不同的列集並進行更改。隨着用戶的變化,我們需要相應地更新Excel網格。因此,直接進入數據庫不是一種選擇。 Excel必須與當前應用程序狀態保持同步。 謝謝 – 2010-08-27 13:07:32

+0

此解決方案(#2)可能會工作,但不會提供靈活性。首先,Excel需要詢問信息。考慮到我們最終保存在本地數據庫中,我們有很多屏幕,我們將不得不爲存儲應用程序節省大量數據和額外的複雜性。您是否熟悉RTD Server(實時數據服務器)?我試圖使用它,但無法弄清楚如何讓我的應用程序饋送數據。 – 2010-08-27 13:49:13

+0

我對實時數據服務器不熟悉。在你的問題中你陳述了(只有在excel要求時)。這並不意味着,當用戶單擊Excel中的按鈕時,您可以刷新配置表中的佈局和數據? – Bravax 2010-08-27 14:08:33

-1

com interop可能對您有些用處。 http://dotnetperls.com/excel-interop它允許您在引用其命名空間時從C#應用程序中創建/編輯/讀取excel(和其他com應用程序)。

+0

johnnyh, interop允許您的應用與excel交互。我們想要的是允許excel與應用進行交互。換句話說,excel要求數據和應用程序提供它。 – 2010-08-27 13:51:19

+0

在這種情況下,你可以編寫一個自定義的宏,並在excel工具欄上有一個按鈕,並調用應用程序,然後通過interop重新填充工作表上的數據? – JohnnyH 2010-08-27 13:55:36

+0

你能提供一個鏈接,顯示如何做到這一點?對我來說非常有意思的是你的這一行 「在excel工具欄上有一個按鈕,打電話給你的應用程序」。如何可以Excel我的應用程序? – 2010-08-27 14:02:37

0

內存數據庫能爲你工作嗎?過去我使用過這一個http://www.quilogic.cc/features.htm以使Access VBA可以與.net應用程序一起工作。您可以讓應用程序將當前數據寫入內存存儲,並且Excel可以通過VBA從存儲中讀取數據。