在Excel中的ASP.NET输出费用报告

在这个项目上,我现在正在努力,最新的function要求之一是输出费用信息,这些信息存储在与他们已经用于所有费用报告的Excel工作表相匹配的费用报表中。

我很好奇,如果有一种方法,我可以把这个excel工作表(所有的布局已经完成),只需填写我们的系统跟踪的部分,然后作为.xls文件提供给用户,而不必做Excel自动化或任何其他方法,需要在服务器上安装Excel。

注意:开发环境是ASP.NET 2.0

我很确定你可以使用OleDB来打开Excel文件(使用模板)

例1

string ConnectionString=@"Provider=Microsoft.Jet.OLEDB.4.0; Data Source=C:\Test Projects\Excel example\Excel - reading an excel file\ReadThis.xls; Extended Properties=Excel 5.0"; //Create the connection System.Data.OleDb.OleDbConnection ExcelConnection = new System.Data.OleDb.OleDbConnection(ConnectionString); 

链接到文章1

例2

 string filename = @"C:\testdata.xls"; string connectionString = "Provider=Microsoft.Jet.OLEDB.4.0;" + "Data Source=" + filename + ";" + "Extended Properties=Excel 8.0;"; OleDbConnection objConn = new OleDbConnection(connectionString); objConn.Open(); OleDbCommand ObjCommand = new OleDbCommand("SELECT * FROM [Sheet1$]", objConn); OleDbDataAdapter objAdp = new OleDbDataAdapter(); objAdp.SelectCommand = ObjCommand; DataSet myDataSet = new DataSet(); objAdp.Fill(myDataSet); DataTable dataTable = myDataSet.Tables["Sheet1$"]; 

链接到第2条

一旦你打开连接,你应该可以读写,但是你喜欢!

你可以试试Spire.XLS( http://www.e-iceblue.com/xls/xlsintro.htm

这不是免费的,但是在阅读和创buildXLS文档方面做得非常好,而不必在服务器上安装Excel。

我这样做的一种方法是使用Office XML生成文档。 既然你有一个特定的文档格式,事情可能会有点困难,但是我过去的做法是将需要显示在报表上的数据导出到一个XML文件中要么保存在磁盘上,要么保存在内存中),然后应用XSL转换将其转换为Excel可以加载的格式正确的文档。 作为参考,这里有一些链接给你:

  • XML在Office开发人员门户
  • 使用XSL将XML转换为Excel电子表格

试试Aspose.Cells – 它对此很好。

Telerik RAD Grid for Asp.NetAJAX具有很好的Excel导出function。

另外两个解决scheme是:

  • 使用OpenOffice(他们有一个没有UI加载/显示的模式)
  • 使用FileHelpers库(您可以读取/写入数据到Excel文件)

我必须说我没有任何经验,但是他们听起来像JET.OLEDB提供者和Xml到X-Excel的Xml(我曾经使用过)中提到的Chris和罗布。

只是想帮助你,并提出一些替代scheme(我不期望太多:))

尽pipe这不会处理您现有的电子表格,但生成Excel文件的一个非常简单和低技术的方法是创build一个带有正确内容types的html文件并使用.xls扩展名。 当Excel(在客户端上)打开文件时,它被视为本地电子表格。

例:

 <html> <head> <meta http-equiv="Content-Type" content="application/vnd.ms-excel" /> <title></title> </head> <body> <table> <tr> <td><b>Forename</b></td> <td><b>Gender</b></td> </tr> <tr> <td>Simon</td> <td>Male</td> </tr> <tr> <td>Katy</td> <td>Female</td> </tr> </table> </body> </html> 

警告:当然,你不会在真实的文件中包含所有的缩进和间距! 我正在使用Excel 2003。

这种技术的另一个小的好处是这些文件是非常有效的生成。

缺点:我还没有find一种将html转换为多个工作表的方法,或者做任何特别技术性的工作。