ExcelファイルをHTMLに変換します。

場所 住所 最寄り駅 最寄り駅情報 徒歩
国会議事堂 東京都千代田区永田町1-7-1 国会議事堂前駅 東京メトロ丸ノ内線/東京メトロ千代田線 徒歩 4分
東京都庁 東京都新宿区西新宿二丁目 都庁前駅 都営大江戸線 徒歩 2分
国会図書館 東京都千代田区永田町1丁目10-1 永田町駅 東京メトロ南北線/東京メトロ半蔵門線/東京メトロ有楽町線 徒歩 3分

ClodedXMLを使って要素を取り出し、これをHTMLに書き出せばできそうです。

ClosedXMLを使うのでNugetでインストールしておきましょう。

表のヘッダー(一行目)と各カラムの1列目、それ以外の部分の前景色と背景色をダイアログで設定することができるようにします。

ファイルが選択されたらtableタグが生成され、リッチテキストボックスに表示されます。

まずExcelファイルの行と列がどれだけあるか調べます。1行目のセルを右へひとつひとつしらべてなにも入力されていなければ列はそこまでであると判断します。行は1列目のセルを下へへひとつひとつしらべてなにも入力されていなければ行はそこまでであると判断します。

以下は行と列の数を調べるメソッドです。

GetTableHeader(IXLWorksheet worksheet, int columCount)メソッドは1行目の要素のみ、GetTableData(IXLWorksheet worksheet, int rowCount, int colomCount)メソッドはそれより下の要素を調べてHTMLを生成するメソッドです。

GetColorCode(Color color)メソッドは色を #ff0000のような形で出力させるためのものです。

この方法だとセルが結合されている場合、うまくいきません。次回はセルが結合されている場合にも対応する方法を考えます。