数件のデータファイルをTeXファイルにインポート

数件のデータファイルをTeXファイルにインポート

- 名前 無 の投稿
返信数: 5
概念だけでも知りたいです。

例えば、数人の名前と模試の点数や順位などがexcelデータファイルとしてあります。
このファイルのデータをTeXファイルにインポートして、各人の成績表を自動的に作成することをしたい場合、どのような命令がありますか?

丸投げで申し訳ないです。どなたか心優しい方、よろしくお願いします。
名前 無 への返信

Re: 数件のデータファイルをTeXファイルにインポート

- 匿 名 の投稿
doraTeX氏のこちらの記事が参考になるかと思います.
(「latex 差し込み印刷」で検索してヒットしました)

帳票生成ツールとしての LaTeX の活用 - TeX Alchemist Online
https://doratex.hatenablog.jp/entry/20201205/1607102432

成績表くらいだと,記事内の方法で十分なように思います.

ただ,記事後半で触れているような
> expl3 で property list の sequence を使う
> LuaTeX で Lua のテーブルを使う
がお望みであれば,お役に立てず申し訳ございません.
匿 名 への返信

Re: 数件のデータファイルをTeXファイルにインポート

- 名前 無 の投稿
感動しました...!
どうやって調べればよいのかわからなかったので、本当に助かりました!
ありがとうございます!
名前 無 への返信

Re: 数件のデータファイルをTeXファイルにインポート

- ut の投稿
# 既にご解決済みとのことですので、飽くまでご参考までですが。

> 「latex 差し込み印刷」で検索してヒットしました

なるほど、こういう用語で検索をすればよかったのですね。
私は探し方の筋が悪くて、以下のような回り道をしてしまいました:

------------------------------------------------------------
CTAN のページへ行って、"csv" で Search する
  ↓
すると、個々のパッケージもヒットしますが、"Topic csv-support"
というトピックがヒットしたので、そのページを見に行く
  ↓
13 個のパッケージがリストアップされていたので、説明文を参考
に、その中からとりあえず、csvmerge、csvsimple、csvtools あた
りのドキュメントを web 上で眺めてみる
  ↓
csvtools が、かなり直観的かつ簡単に使えそうだったので、ダウ
ンロードして試してみる

※ 個々のパッケージのページに行ってみると、"CSV support" という
  Topic の他に "Data display"、"Data import"、"Data manipulation"
  等の Topic もあるらしいということが分かりました。

※ csvtools は最終版が 2007 年で "Obsolete" と表示されており、
  後継のパッケージは datatool bundle とのことです。datatool
  のドキュメントも眺めてみましたが、csvtools が圧倒的にシン
  プルで、簡単な作業ならこちらでも大丈夫そうでした。

※ "Contained in" の欄には MiKTeX としか表示されていないので
  TeX Live には未収録のようですので、使用するには CTAN から
  ダウンロードして、dtx から sty を取り出す必要があります。
------------------------------------------------------------

% --- 2022.csv ---
no,name,1st,rank,2nd,rank,3rd,rank
00001,松野 おそ松,35,28,40,25,15,31
00002,松野 カラ松,40,27,15,30,25,29
00003,松野 チョロ松,25,30,20,29,40,27
00004,松野 一松,15,32,35,26,20,30
00005,松野 十四松,30,29,25,28,35,26
00006,松野 トド松,20,31,30,27,30,28

% --- test.tex ---
\documentclass[b5paper,landscape,papersize,dvipdfmx]{jsarticle}
\usepackage{csvtools}
\pagestyle{empty}

\begin{document}

\applyCSVfile{2022.csv}{%
\begin{center}
2022(令和4)年度 試験成績表

\bigskip

\begin{tabular}{|c|c|r|r|r|r|r|r|}
\hline
学生番号 & 氏 名 &
  \multicolumn{2}{|c|}{第1回} &
  \multicolumn{2}{|c|}{第2回} &
  \multicolumn{2}{|c|}{第3回}\\\hline
\field{1} & \field{2} &
  \field{3} 点 & \field{4} 位/ 32 人 &
  \field{5} 点 & \field{6} 位/ 30 人 &
  \field{7} 点 & \field{8} 位/ 31 人 \\\hline
\end{tabular}
\end{center}
\newpage
}

\end{document}


※ csv ファイルのヘッダ行(上の例だと "no,name,1st,rank,2nd,rank,3rd,rank"
  という行)に日本語が含まれていると、うまく行かないみたいです。

※ field がいくつまで使えるか等々は試してみていません。

※ 上の例では単純に "\field{ }" の番号で指定していますが、
  "\insert..." や "\insertbyname{...}" として "..." の部分に
  ヘッダの単語(no や name 等々)を使うこともできるらしいです。
ut への返信

Re: 数件のデータファイルをTeXファイルにインポート

- 匿 名 の投稿
実は,私自身はut様がお示しいただいたような方法の方が興味がありました.
ただ,このような処理をあまり頻繁に使うこともないので,ろくに調べもせずWordでいいや,となってしまって10年以上が経過しておりました.
次に使うときには,ご紹介いただいたcsvtoolsに挑戦してみようと思います.

「回り道」が誰かの高速道路になる,とても素敵なことだと思います.
ありがとうございました.