我有一個Excel電子表格來監視某些證券的市場價格。創建一個單獨的Excel進程
我從彭博市場獲得這個市場價格,只要市場開放,這些價值就會隨時變化。
我有一個簡單的VBA工具,每次發生危險時都會向我發送警報。
不幸的是我在白天運行多個Excel電子表格,有時當警報來了我其他的宏停止工作。
所以我想如果它有可能在c#中寫一些東西,我可以在後臺運行這個excel工具,作爲一個完全不同的過程,它不會干擾我的其他任何開放的excel工作簿。
我有一個Excel電子表格來監視某些證券的市場價格。創建一個單獨的Excel進程
我從彭博市場獲得這個市場價格,只要市場開放,這些價值就會隨時變化。
我有一個簡單的VBA工具,每次發生危險時都會向我發送警報。
不幸的是我在白天運行多個Excel電子表格,有時當警報來了我其他的宏停止工作。
所以我想如果它有可能在c#中寫一些東西,我可以在後臺運行這個excel工具,作爲一個完全不同的過程,它不會干擾我的其他任何開放的excel工作簿。
我建議使用Microsoft.Office.Interop.Excel
以實現C#
你的代碼。
使用上面的NameSpace可以獲得對Excel模型的完全訪問權限,然後就可以監視不同的單元格。
代碼改爲使用C#
是所有在互聯網上的Excel文件。
好消息是C#應用程序在不同的線程您的Excel文件的運行,並不會干涉他們。
,而不是試圖寫在後臺運行您的Excel工具的工具,更好的辦法是在C#
寫一個工具來實現它的邏輯。
每個宏都應該獨立工作(除非其中的某些操作包括精確影響其他工作簿)。對於C#同樣的事情。在C#中處理Excel時,您必須依賴Excel Object/Application
,並且可以根據需要創建多個Excel。每個Excel對象都與工作簿/ Excel文件關聯。您可以並行處理這些對象中的一些,而不會出現任何問題(與VBA相同 - >或許您必須查看宏中的代碼)。
Here你從MSDN展示瞭如何使用Excel的C#自動化示例代碼。
如果遇到下面這些行小代碼,你會看到,你可能會在方式影響兩個不同的Excel文件,你想:
using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Linq;
using System.Text;
using System.Windows.Forms;
using Microsoft.Office.Interop.Excel;
namespace WindowsFormsApplication2
{
public partial class Form1 : Form
{
public Form1()
{
InitializeComponent();
}
private void Form1_Load(object sender, EventArgs e)
{
string path = @"path to first Excel file";
string path2 = @"path to second Excel file";
Microsoft.Office.Interop.Excel.Application oXL = new Microsoft.Office.Interop.Excel.Application();
Workbook oWB = oXL.Workbooks.Open(path, 0, false, 5, "", "", false, Microsoft.Office.Interop.Excel.XlPlatform.xlWindows, "", true, false, 0, true, false, false);
Worksheet oSheet = (Worksheet)oWB.ActiveSheet;
Microsoft.Office.Interop.Excel.Application oXL2 = new Microsoft.Office.Interop.Excel.Application();
Workbook oWB2 = oXL2.Workbooks.Open(path2, 0, false, 5, "", "", false, Microsoft.Office.Interop.Excel.XlPlatform.xlWindows, "", true, false, 0, true, false, false);
Worksheet oSheet2 = (Worksheet)oWB2.ActiveSheet;
oXL.Visible = true;
oXL2.Visible = true;
oXL = null;
oXL2 = null;
}
}
}
你是說所有ExcelSheets的這是在不同的文件中得到冷凍?或者它們都是同一個Excel文件的一部分? –