1. HOME
  2. ブログ
  3. IT技術
  4. 【Java】スプレッドシートの表をHTML化する

【Java】スプレッドシートの表をHTML化する

概要

Googleスプレッドシートに記載されている表をHTMLとして生成することができるツールの開発について記事にしました。

前提

言語はJavaです。そしてスプレッドシートの内容を読み込み、JavaクラスにマッピングするツールとしてXlsMapperというライブラリを使用します。詳細な前提条件はリンク先に記載あるのでそちらを確認してください。

[完成イメージ]

スプレッドシート

HTML

ちなみにプロジェクトのディレクトリ構成は以下になります。

解説

スプレッドシートの内容をJavaに読み込ませるには手元のPCにxlsxファイルをダウンロードしてくる必要があります。今回は以下のようなスプレッドシートを sample.xlsxとして"com.sample"直下に配置します。

そしてsample.xlsxからデータを読み込み、取得したデータを元にHTMLを生成するメインの処理を記述したコードが以下になります。(packageやimportの記載は省略)

SampleConverter.java

SampleSheet.java

見慣れないアノテーションが2つありますね。
@XlsSheetはxlsxファイルの指定されたシートを読み込んでJavaクラスにマッピングしてくれます。今回はsampleシートを読み込むため、nameプロパティの値が sampleとなっています。

もう一つの @XlsHorizontalRecordsは水平方向に連続する行をCollection(List, Map等)にマッピングしてくれます。ヘッダーが横並びの表をマッピングしたい場合にこのアノテーションを使用します。(他の表形式に対応するアノテーションもあるのでドキュメントを参照してみてください)

SampleRecord.java

このクラスでもxlsMapperのアノテーションが使用されています。 @XlsColumnはcolumnName属性で指定したカラム名に紐づくセルの値をフィールドにマッピングしてくれます。

以下の図でいうと columnName属性にカラム名である"ID" を指定するとidフィールドに数字の1がマッピングされます。

ここまでスプレッドシートから取得したデータを加工しhtmlファイルにレコード情報を渡す準備ができました。最後にデータの渡し先になる sample-template.htmlの内容が以下になります。

Java側からデータを受け取って繰り返し処理をするため、Thymeleafを使用しています。

必要なコードは以上になります。あとは SampleConverter.javaのmainメソッドを実行するとresultディレクトリ配下にsample.htmlが生成されます。

書いた人はこんな人

かじー(エンジニア)
かじー(エンジニア)
2022年6月入社。雑食系エンジニア。

関連記事

採用情報

\ あの有名サービスに参画!? /

バックエンドエンジニア

\ クリエイティブの最前線 /

フロントエンドエンジニア

\ 世界を変える…! /

Androidエンジニア

\ みんなが使うアプリを創る /

iOSエンジニア