0

私が現在取り組んでいるこのプロジェクトでは、最新の機能要求の 1 つは、すべての経費報告に既に使用している 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 )を試すことができます。

無料ではありませんが、サーバーに Excel をインストールしなくても、XLS ドキュメントの読み取りと作成を行うことができます。

于 2009-01-09T15:57:43.540 に答える
1

私がこれを行った方法の 1 つは、Office XML を使用してドキュメントを生成することです。ドキュメントに必要な特定の形式があるため、少し難しいかもしれませんが、私が過去に行った方法は、レポートに表示する必要があるデータを XML ファイルにエクスポートすることです (ディスクまたはメモリに保存されます)、XSL 変換を適用して、Excel が読み込める正しい形式のドキュメントに変換します。参考までに、以下にいくつかのリンクを示します。

于 2009-01-09T16:07:35.203 に答える
0

別の2つの解決策は次のとおりです。

  • OpenOfficeを使用します(UIがロード/表示されないモードがあります)
  • FileHelpersライブラリを使用します(Excelファイルへのデータの読み取り/書き込みが可能です)

私はどちらも経験がないと言わなければなりません...しかし、それらはJET.OLEDBプロバイダーとChrisが言及したXsl(私は両方とも過去に使用した)を介したXml-to-Excelのほかに確かな代替手段のように聞こえますとロブ。

途中であなたを助け、いくつかの選択肢について言及したかっただけです(私は多くのポイントを期待していません:))

于 2009-01-09T16:31:15.657 に答える
0

Aspose.Cellsを試してみてください- これは非常にうまく機能します。

于 2009-01-09T15:42:24.383 に答える
0

Asp.NetAJAX 用の Telerik RAD Grid には、優れた Excel エクスポート機能があります。

于 2009-01-09T15:53:15.937 に答える
0

これは既存のスプレッドシートを処理しませんが、Excel ファイルを生成する本当に簡単でローテクな方法は、正しいコンテンツ タイプで .xls 拡張子を使用する html ファイルを作成することです。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>

警告: もちろん、すべてのインデントとスペースを実際のファイルに含めることはできません! エクセル2003を使用しています。

この手法のもう 1 つの小さな利点は、これらのファイルを非常に効率的に生成できることです。

欠点: HTML を複数のワークシートに変換する方法や、特に技術的なことを行う方法が見つかりませんでした。

于 2009-01-09T17:31:12.883 に答える