代码之家  ›  专栏  ›  技术社区  ›  TheTXI

Excel中的ASP.NET输出支出报表[已关闭]

  •  0
  • TheTXI  · 技术社区  · 17 年前

    在我目前正在处理的这个项目中,最新的功能请求之一是输出开支信息,这些信息存储在开支报告中,与他们已经用于所有开支报告的Excel工作表相匹配。

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

    注:开发环境为ASP.NET 2.0

    7 回复  |  直到 16 年前
        1
  •  3
  •   cgreeno    17 年前

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

    一旦你打开了连接,你应该能够读写它,无论你喜欢!

        2
  •  1
  •   Nasir    17 年前

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

    它不是免费的,但它在阅读和创建XLS文档时做得很好,而不必在服务器上使用Excel。

        3
  •  1
  •   rjzii    17 年前

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

        4
  •  0
  •   Ian Varley    17 年前

    尝试 Aspose.Cells -它对这个很有用。

        5
  •  0
  •   dmajkic    17 年前

    用于asp.netajax的telerik rad网格具有良好的Excel导出。

        6
  •  0
  •   Cohen    17 年前

    另外两个解决方案是:

    • 使用OpenOffice(它们具有不加载/显示UI的模式)
    • 使用 FileHelpers 库(可以将数据读/写到Excel文件中)

    我得说我对他们都没有经验…但是,除了jet.oledb提供程序和xml-to-excel通过xsl(我过去都用过xsl)之外,它们听起来像是可靠的替代方案,chris和rob都提到过。

    只是想在路上帮助你,并提出一些备选方案(我不希望有太多要点:)

        7
  •  0
  •   DanR    17 年前

    虽然这不会处理您现有的电子表格,但生成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>
    

    注意:当然,您不会在实际文件中包含所有的缩进和间距!我正在使用Excel2003。

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

    缺点:我没有找到将HTML转换成多个工作表的方法,也没有找到做任何特别技术性的事情的方法。

    推荐文章