通过c#应用程序打开excel文件

我的应用程序使用Excel文件从网上读取数据(使用Excel Web查询和从Excel文件中读取数据)
我使用的excel文件叫做webGate。
我的问题是,我不想让webGate呈现给用户。
如果用户在我的应用程序正在读取webGate文件时打开excel文件(任何其他文件),则webGate文件将与用户文件
(即用户打开excel文件,两个文件正在呈现其中之一是webGate)
任何想法如何使用该文件,但它永远不会呈现给用户?
谢谢
伊兰

你想达到什么目的? 目前尚不清楚。 任何想法如何使用该文件, 但它永远不会呈现给用户?

如果你想打开/修改C#代码中的文件: http : //www.codeproject.com/KB/office/csharp_excel.aspx

您可以使用.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(); } 

我不知道这是否会太麻烦,但可能是值得的作为一个XML导出的Excel文件(如果这是可能的,我不知道你的Excel文件看起来像),并阅读数据以这种方式。

为此我使用了Infragistics工具集 ,并且它工作的很好(支持所有的excel版本,而且function非常丰富)

它可能不适合你的需要,因为它不是免费的,但如果你问我,这在很大程度上是值得的

如果项目花费不到30天,则可以使用SpreadsheetGear for .NET的免费评估将Excel工作簿embedded到.NET应用程序中,而不会将其呈现给用户。 只需按照以下步骤操作

  • 创build一个新的C#Windows窗体应用程序,并将WorkbookView控件放在窗体上(如果不确定如何操作,请参阅SpreadsheetGear Windows Forms应用程序教程)。
  • 右键单击WorkbookView并select“Workbook Designer …”。
  • 在工作簿devise器中closures默认工作簿并使用文件打开…打开您的工作簿。 这会将您的工作簿作为资源embedded到应用程序中。
  • closures工作簿devise器。
  • 如果您不希望用户看到WorkbookView,则可以隐藏WorkbookView,也可以使用WorkbookView.DisplayReference属性限制他们可以看到的工作簿的哪些部分。

你可以在这里下载免费评估。

免责声明:我自己的SpreadsheetGear LLC