0

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

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

注:开发环境为 ASP.NET 2.0

4

7 回答 7

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);

链接到第 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 条

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

于 2009-01-09T15:58:05.473 回答
1

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

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

于 2009-01-09T15:57:43.540 回答
1

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

于 2009-01-09T16:07:35.203 回答
0

试试Aspose.Cells - 它非常适合这个。

于 2009-01-09T15:42:24.383 回答
0

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

于 2009-01-09T15:53:15.937 回答
0

另外两个解决方案是:

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

我必须说我对它们中的任何一个都没有经验......但它们听起来像是 Chris 提到的 JET.OLEDB 提供程序和通过 Xsl 的 Xml-to-Excel (我过去都使用过)之外的可靠替代品和罗布。

只是想在您的路上帮助您并提及一些替代方案(我不希望得到太多积分:))

于 2009-01-09T16:31:15.657 回答
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。

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

Downsides: I've not found a way to turn html into multiple Worksheets, or to do anything particularly technical.

于 2009-01-09T17:31:12.883 回答