簡體   English   中英

通過 c# 應用程序打開 excel 文件

[英]opening excel file via c# application

My application using excel file in order to read data from web (using excel web query and reading the data from the excel file)
我使用的 excel 文件名為 webGate。
我的問題是我不希望將 webGate 呈現給用戶。
如果用戶在我的應用程序正在讀取 webGate 文件時打開 excel 文件(任何其他文件),則 webGate 文件將與用戶文件一起呈現
(即用戶打開 excel 文件並顯示兩個文件,其中一個是 webGate)
關於如何使用該文件但它永遠不會呈現給用戶的任何想法?
謝謝
伊蘭

你想達到什么目標? 它還不清楚。 關於如何使用該文件但它永遠不會呈現給用戶的任何想法?

如果要打開/修改 C# 代碼中的文件: http://www.codeproject.com/KB/office/csharp_excel.aspx

您可以使用 an.xls 作為 OLEDB 數據源。 您使用 Microsoft.Jet.OLEDB.4.0 數據提供程序。

這意味着您正在從 excel 表中讀取數據,而不是在 Excel 應用程序中將 .xls 作為文檔打開。

這不是自動化。 它不會啟動 Excel.exe。 它不需要 Excel.exe。 不需要第三方組件。 沒有額外費用(除了 Windows 的費用)。 它適用於服務器端應用程序。

完整的源代碼在這里

片段:

void CreateExcelDocThroughAdoNet()
{
    const string Filename= "adonet-excel.xls";

    const string strConnect = 
      "Provider=Microsoft.Jet.OLEDB.4.0;" + 
      "Data Source=" + Filename + ";" + 
      "Extended Properties=\"Excel 8.0;HDR=yes;\""; 

    try
    {
      conn = new System.Data.OleDb.OleDbConnection(strConnect);
      CreateTable();
      for(int i=0; i < 4; i++) Insert(i);
    }
    catch (System.Exception ex)
    {
      System.Console.WriteLine("Exception: " + ex.Message+ "\n  " + ex.StackTrace); 
    }
}


private void CreateTable()
{

    string strSql = "CREATE TABLE SampleTable ( Ix NUMBER, CustName char(255), Stamp datetime )";

    System.Data.OleDb.OleDbCommand cmd= new System.Data.OleDb.OleDbCommand(strSql, conn);
    conn.Open();
    cmd.ExecuteNonQuery();
    conn.Close();
}

private void Insert(int ix)
{
    string strSql = "insert into [SampleTable] ([ix],[CustName],[Stamp]) value(@p1,@p2,@p3)";

    System.Data.OleDb.OleDbCommand cmd= new System.Data.OleDb.OleDbCommand(strSql, conn);

    cmd.Parameters.Add("@p1", System.Data.OleDb.OleDbType.Numeric).Value = ix;
    cmd.Parameters.Add("@p2", System.Data.OleDb.OleDbType.VarChar).Value = "Some text";
    cmd.Parameters.Add("@p3", System.Data.OleDb.OleDbType.Date).Value = System.DateTime.Now;

    conn.Open();
    cmd.ExecuteNonQuery();
    conn.Close();
  }

我不知道這是否會太麻煩,但是將 excel 文件導出為 xml 可能是值得的(如果可能的話,我不知道你的 ZBF57C906FA7D2BB66D07Z372E4 看起來像什么)那樣的數據。

為此,我使用Infragistics 工具集,效果很好(支持所有 excel 版本,並且功能非常豐富)

它可能不適合您的需求,因為它不是免費的,但如果您問我,它在很大程度上是值得的

如果項目需要不到 30 天,您可以使用SpreadsheetGear 的免費評估 .NET將 Excel 工作簿嵌入到 .NET 應用程序中,而無需將其呈現給用戶。 只需按照以下步驟操作:

  • Create a new C# Windows Forms application and put a WorkbookView control on your form (see the SpreadsheetGear Tutorial for Windows Forms app if your not sure how to do this).
  • 右鍵單擊 WorkbookView 並選擇“Workbook Designer...”。
  • 在 Workbook Designer 中,關閉默認工作簿並使用 File Open... 打開您的工作簿。 這會將您的工作簿作為資源嵌入到應用程序中。
  • 關閉工作簿設計器。
  • 如果您不希望用戶看到 WorkbookView,您可以隱藏它,或者您可以使用 WorkbookView.DisplayReference 屬性來限制他們可以看到的工作簿的哪些部分。

您可以在此處下載免費評估。

免責聲明:我擁有 SpreadsheetGear LLC

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM