最近、私はExcelファイルのテーブルの内容をフィルタリングする必要がある小さなプロジェクトに着手しました。私はこのプロジェクトにC#とEPPLUSを使い、入力されたExcelテーブルをDatatableに変換して、すべてのデータを処理します。C#でExcelファイルを解釈する
しかし、私がクライアントから受け取ったExcelファイルは、フィラーの説明とその間に空白が入った表の上にテーブルが配置されているという不思議なフォーマットです。私はいくつかのExcelのテーブルを変換の実験を行ってきた
:各Excelファイルは、私がこれまで見てきたものの一例である以下、あまりにもデータを配置する独自の方法を持っているようです私はこれまで見てきたことから、システムは基本的にセルA1から始まるシート上の行ごとのデータを繰り返します。この反復処理中にテーブルを検出し、タイトル/説明/空の行からそれらを分離する方法はありますか?私はテーブルの有無を判断するためにテーブルの境界線を調べることを考えましたが、シナリオDではExcelファイルの中にはテーブルの境界線を設定しないものもありました。
Excelファイルの標準フォーマットに同意することができるようにクライアントに知らせる予定ですが、これはExcelファイルを解釈するための最初のプロジェクトで、小さなメタ質問もあります。やるべき事?私はこれらの異なるExcelフォーマットがビジネスの選択(すなわち、異なる部門からのもの)に起因する可能性があると仮定しているので、クライアントが現在の方法を変更することを納得させることは、この種の問題に過去に遭遇したまたは私は彼らが現在働いているものと一緒に行くべきですか?
私は顧客がその回答を受け入れるとは思わない。私はテーブルをCSVにエクスポートして、CSVをC#にインポートします。テーブルをCSVに保存するために、VBAマクロを記述することができます。 – jdweng
C#からExcelオブジェクトモデルにアクセスすることができますので、期待していたものと妥当な量の偏差しかない場合(たとえば、IsNumeric(Range( "A1")が必要な場合など)、さまざまなタイプのテーブルを識別するロジックを記述できます。テーブルセルではないヘッダーなど)、それをオンラインで検索してください。ただし、クライアントには、文書を解析可能な形式にすることが非常に重要です( – Absinthe