0

ヘッダー、フッター、ページ番号などを含むテキスト ベースのレポート (.txt 形式) を作成する必要があります。これは、COBOL を使用してレポートを作成する方法と似ています。

.NETアプリケーションでこれを可能にするライブラリまたはサードパーティのツールを知っている人はいますか?

Reporting Services などを使用するつもりはありません。データセットを作成してから、適切にフォーマットされ、列間が適切に配置された独自のレポートを作成したいだけです。

今日、アプリケーション内に Powershell の format-table コマンドを組み込むことで、(見出し、ページ番号、フッターなしで) これを実現しています。間隔などを気にせずにレポートをフォーマットするのにうまく機能しているようで、列を簡単に並べ替えることができます。

どんな助けや指示もいただければ幸いです。

4

2 に答える 2

0

いくつかの.NETベースのテンプレートエンジンをチェックしたいと思います。私は以前にテンプレートエンジンを使用しましたが(.NETにはありませんが)、それらはあなたの要件にうまく適合すると思います。

ここでそれらに関連するSOに関するいくつかの質問を見て、人々が何を推奨するかを感じ取ってください。たとえば、を見てください。

于 2013-02-05T05:12:54.357 に答える
0

必要なことを達成するためにサードパーティのライブラリは必要ありません。ループしてCollectionから、各レコードに区切り記号を追加するだけです。string次に、適切な を使用して応答として を書き込みますheader

ここにサンプルがありますが、概念はあらゆるタイプのCollectionまたはListタイプに関連しています。

テキストファイルへのデータテーブル

オプションの区切り文字を使用して出力用の文字列に変換する DataTable 拡張メソッドのサンプルを次に示します。

public static string GetStringSeperatedBy(this DataTable dt, string delimiter)
{
    var sb = new StringBuilder();

    var columnNames = dt.Columns.Cast<DataColumn>().Select(column => string.Format("\"{0}\"", column.ColumnName)).ToArray();
    sb.AppendLine(string.Join(delimiter, columnNames));

    foreach (DataRow row in dt.Rows)
    {
       var fields = row.ItemArray.Select(field => string.Format("\"{0}\"", field.ToString().Replace(Environment.NewLine, " ").Replace("\"", ""))).ToArray();
            sb.AppendLine(string.Join(delimiter, fields));
    }
    return sb.ToString();
 }
于 2013-02-05T05:29:06.160 に答える