Excel中的ASP.NET输出费用报表

时间:2009-01-09 15:38:53

标签: asp.net excel reporting

在我正在进行的这个项目中,最新的功能请求之一是输出费用信息,该信息存储在费用报告中,该费用报告与他们已用于所有费用报告的Excel工作表相匹配。

我很好奇是否有办法让我可以使用这个excel工作表(已完成所有布局)并只填写我们系统跟踪的部分,然后将其作为.xls文件提供给用户无需执行Excel Automation或任何其他需要在服务器上安装Excel的方法。

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

7 个答案:

答案 0 :(得分:3)

我很确定你可以使用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);

Link to article 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$"];

Link to Article 2

打开连接后,您应该可以随意阅读和写入!

答案 1 :(得分:1)

您可以尝试使用Spire.XLS(http://www.e-iceblue.com/xls/xlsintro.htm

它不是免费的,但在阅读和创建XLS文档方面做得很好,而无需在服务器上安装Excel。

答案 2 :(得分:1)

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

答案 3 :(得分:0)

尝试Aspose.Cells - 这对此非常有用。

答案 4 :(得分:0)

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

答案 5 :(得分:0)

另外两个解决方案是:

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

我必须说我对其中任何一个都没有经验...但它们听起来像JET.OLEDB提供者旁边的固体替代品和通过Xsl的Xml-to-Excel(我以前都使用过)克里斯和罗布提到。

只是想在你的路上帮助你,并提一些替代方案(我不指望多少点:))

答案 6 :(得分:0)

虽然这不会处理现有的电子表格,但生成Excel文件的一种非常简单且低技术的方法是创建具有正确内容类型的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。

这种技术的另一个小优点是这些文件生成效率非常高。

缺点:我没有办法将html转换成多个工作表,或者做任何特别技术性的事情。