日本語プログラミング言語なでしこの公式掲示板

なでしこ1 質問

トップ 新規 検索

2023-06-07 09:48:42

Excelの横一列の配列の先頭を項目名にしつつhtml化したい

かわ さん

いつも勉強させて頂いてます。
現在、作ろうと思っているものがあるのですが、初心者の私には配列の使い方がよくわからず…ご助力いただけると幸いです。

対象はExcelデータの処理で、横一列に多数の項目が記載されていて、空の行もあちこちにある、といったものです。
これを縦に並べた1つのhtmlに変換したいのです。

例えば、以下のようなExcelがあるとして、
 社員名  18日 19日 20日 21日 補足
 山田太郎 ○      ○      21日は不可
 山田次郎 ○         ○

これを、
 社員名 山田太郎
 18日 ○
 19日 
 20日 ○
 21日
 補足 21日は不可
といった縦組みのhtmlに変換したいのです。

また、項目名がExcelシートごとで全部違っていて、固定名称にできないので、何とか最初の行をタイトルとしつつ取り込みできないか、と考えています。そして、項目の中に文章があり、半角カンマを使うことも多いので、TSVでの処理を考えています。TSVはExcelから書き出します。

今は最初の行の取り込みをとりあえず無視して、以下のようなものを作っています。とりあえず動作はしますが、やはり項目名があった方が使いやすいので、可能であれば修正したいのです。(現在は○のところを18日、などに手動でExcel検索置換して取り込んでいます)

Excel上で縦横入れ替えで解決したいところですが、長い文章がところどころ存在するのがネックとなっています。また、文章内にエンティティ文字が存在しているため、html化しないと見えない記号などがあります。

よろしくお願いします。

↓タグ部分は消えてしまうようなので、全角<>に変換しています
--------------
//HTMLをデスクトップ出力設定
「{デスクトップ}★HTML化.html」に出力先設定。

//CSSの { が消えてしまうのでまず一段階目として二重かっこでCSS出力
『<HTML><meta http-equiv="Content-Type" content="text/html; charset=Shift_JIS">
<head>
<style type="text/css">//CSSは省略します
</style>
</head>
<BODY>』を出力。

「{デスクトップ}」に作業フォルダ変更。
「*.txt」のファイル選択。 //TSVを対象としますが、実用上txtにしています

それを毎行読んで反復。
 本文はそれ。
 本文の「{タブ}」を「<p>」に置換。
 本文はそれ。
 「{本文}<hr>{改行}」を出力。//各項目ごとに区切り線を入れます

//ループ抜けたあとの終了処理。
「</BODY></HTML>」を出力。
「終了しました」と言って終了する。

(編集パスワード送信)

親記事

この内容(No.1659)に返信

この内容(No.1659)をダウンロード

この内容(No.1659)のテキスト表示

子記事

1661 Re②:Excelの横一列の配列の先頭を項目名にしつつhtml化したい (23-06-08)
1660 Re①:Excelの横一列の配列の先頭を項目名にしつつhtml化したい (23-06-07)




www.eznavi.net