2

以下のようなログファイルがあり、このログファイルをExcelシートに変換したいと思います。

サンプルログファイル

DateTime: 2012-12-10 20:27:10
Command: ALTER INDEX [Mypageviews] ON [WhosOff].[dbo].[PageViews] REORGANIZE WITH (LOB_COMPACTION = ON)
Comment: ObjectType: Table, IndexType: NonClustered, ImageText: N/A, NewLOB: No, FileStream: N/A, AllowPageLocks: Yes, PageCount: 7639, Fragmentation: 8.1817
Outcome: Succeeded
Duration: 00:00:41
DateTime: 2012-12-10 20:27:51

DateTime: 2012-12-10 20:27:52
Command: ALTER INDEX [MyVisitKeys] ON [WhosOff].[dbo].[Visit] REBUILD WITH (SORT_IN_TEMPDB = OFF, ONLINE = ON)
Comment: ObjectType: Table, IndexType: NonClustered, ImageText: N/A, NewLOB: No, FileStream: N/A, AllowPageLocks: Yes, PageCount: 7229, Fragmentation: 94.4667
Outcome: Succeeded
Duration: 00:00:06
DateTime: 2012-12-10 20:27:58

上記のログテキストファイルをC#を使用してExcelシートで次の形式に変換したいと思います。出力

StartTime             IndexName     Dbnanme Tbname
2012-12-10 20:27:10  MyPageviews    WhosOff PageViews
2012-12-10 20:27:52  MyVisitKeys    WhoOff  Visit

上記の出力を達成するためのプログラムを作成する方法を教えてもらえますか?

4

3 に答える 3

0

SmartXlsの実装を試みることができます。そこで、たとえばDataTableからExcelファイルを簡単に作成できます。

それ以外の場合は、htmlテーブルを使用してファイルを作成し、それを.xlsとして保存して、Excelで開きます。または、.csv形式だけではないのはなぜですか?

解析と変換の特定のコード例はありませんが、ほとんどの人が理解できるほど簡単に思えますか?これが役立つかもしれないいくつかの参考文献です:

于 2012-12-20T12:38:20.703 に答える
0

私の意見では、最も簡単な方法は、CSV形式に変換することです。Excelのすべてのバージョンはそれをよく認識できます。ただし、日付、時刻、小数、およびその他すべてのロケール固有のフォーマット値には注意してください。Excelは、そのすべての値を内部表現に変換しようとします。これは、コンピューターのロケールで表現された値の場合にのみ正常に行われます。

于 2012-12-20T12:39:25.460 に答える
0

入力を意味のあるものに解析する必要があると思います。これは、問題の最も複雑な部分です。

ただし、ある種の構造でデータを取得したら、これを行う最も基本的な方法は、Excelにインポートできる区切りテキストファイル(csvなど)を作成することです。

これを行うには、各列の値と新しい行の各行の間にコンマ(または選択した区切り文字)を入れるだけです。

より洗練された複雑なソリューションがあります。たとえば、Open Office形式でxmlドキュメントを出力したり、Excelオブジェクトモデルにアクセスしたりします。私が言うように、これらのそれぞれはよりエレガントですが、より急な学習曲線が付属します。

于 2012-12-20T12:40:25.430 に答える