ハロー、
Java を使用してテキスト ファイルで適切に書式設定されたレポートを生成する方法を探していました。
たとえば、次の形式でレポートを印刷する必要がある場合があります。
月次報告 A レポート名 ページ番号: 1 日付: YYYY-MM-DD あ A カテゴリー 数量 価格 を -------------- ------------------ --------------- ----- B ペン 100 $100 B ペーパー 200 $400 あ ===================================== B 合計 $500 =====================================
私は自分のプログラムを書いてみましたが、混乱していると感じています!!! それで、私が使用できる既存のライブラリがあるかどうか、またはそれを実装する良い方法があるかどうか疑問に思っています??
ところで、私は周りを見回して、私が欲しいものに似たライブラリを見つけました https://github.com/iNamik/Java-Text-Table-Formatter
他のオプションがあるかどうか疑問に思っています。助けてくれてありがとう!!
================================================== ==================
そのため、コードをクリーンアップするためにおそらく使用するサンプル コードを作成しました。
StringBuilder sb = new StringBuilder();
sb.append(String.format("%s %50s%n", "A", "Monthly Report"));
sb.append(String.format("%s %48s%n", "A", "Report Name"));
sb.append(String.format("%s %n", "A"));
sb.append(String.format("%s %-20s %-20s %-20s%n", "A", "Category", "Quantity", "Price"));
sb.append(String.format("%s %-20s %-20s %-20s%n", "A", "--------------", "--------------", "--------------"));
sb.append(String.format("%s %-20s %-20s %-20s%n", "B", "Paper", 100, "$200"));
System.out.println(sb.toString());
出力:
月次報告 レポート名 あ A カテゴリー 数量 価格 -------------- -------------- -------------- B 紙 100 $200
フォーマッタのint引数をハードコーディングせずに、中央に「レポート名」、右側に「ページ番号:」を作成するにはどうすればよいか考えています(つまり、50なしの%50sは可能ですか)