Translate

Post Date:2020年6月2日 

Googleスプレッドシート から 簡単にHTMLの表を作成する

Googleシートからテーブルタグを作成

HTMLで表を描くのは嫌いです。簡単な表であればエディタで直接書けばよいのですが、大きな表を作成したり、セルを結合したり、バックグランドの色を変えたりとなると、、、、。

「んー、面倒くさい!」


HTMLで表を作成する(基本編編)

先ずは、HTMLで表を作成するときのおさらいです。


枠線

枠線を描くときは、<table border=”数値”> を使い、枠線の太さを px(ピクセル)で指定します。

<table border="1">
    <tbody>
        <tr>
            <td>データ1</td>
            <td>データ1</td>
            <td>データ1</td>
        </tr>
    </tbody>
</table>

表示:
データ1 データ2 データ3

border で枠線を描くと二重線となります。枠線を一本線にするには、二重線の予約を設定する cellspacing を使って、二重線の余白を 0 にすることで2本の線が重なり一本線となります。

<table border="1" cellspacing="0">
    <tbody>
        <tr>
            <td>データ1</td>
            <td>データ1</td>
            <td>データ1</td>
        </tr>
    </tbody>
</table>

表示:
データ1 データ2 データ3

セル内の余白

表の見栄えをよくするために、セルの内の余白を設定しましょう。セル内の余白については、tableタグの中で cellpadding=”数値” で指定します。数値は px(ピクセル)指定です。余白は、左右、前後に適用されます。

例:cellpading=”0”

※ セル内の余白なしの場合は、cellpadding を指定する必要はありませんが、下記の例では明示的に0としています。

<table border="1" cellspacing="0" cellpadding="0">
    <tbody>
        <tr>
            <td>データ1</td>
            <td>データ1</td>
            <td>データ1</td>
        </tr>
    </tbody>
</table>

表示:
データ1 データ2 データ3


例:cellpading=”3”

<table border="1" cellspacing="0" cellpadding"3">
    <tbody>
        <tr>
            <td>データ1</td>
            <td>データ1</td>
            <td>データ1</td>
        </tr>
    </tbody>
</table>

表示:
データ1 データ2 データ3


例:cellpading=”5”

<table border="1" cellspacing="0" cellpadding="5">
    <tbody>
        <tr>
            <td>データ1</td>
            <td>データ1</td>
            <td>データ1</td>
        </tr>
    </tbody>
</table>

表示:
データ1 データ2 データ3

セル内の背景色

表の見出し行に色を付けるとわかりやすくなります。背景色は、<td bgcolor=”カーラーコード”> です。下記の例では見出しの色を #cccccc としています。

<table border="1" cellspacing="0" cellpadding="3">
    <tbody>
        <tr>
            <td bgcolor="#cccccc">見出し1</td>
            <td bgcolor="#cccccc">見出し2</td>
            <td bgcolor="#cccccc">見出し3</td>
        </tr>
        <tr>
            <td>データ1</td>
            <td>データ2</td>
            <td>データ3</td>
        </tr>
    </tbody>
</table>

表示:
見出し1 見出し2 見出し3
データ1 データ2 データ3

文字寄せ

セル内の文字は、aling=”” で 左寄せ(left)、中寄せ(center)、右寄せ(right) の指定ができます。

<table border="1" cellspacing="0" cellpadding="3">
    <tbody>
        <tr>
            <td bgcolor="#cccccc">見出し1</td>
            <td bgcolor="#cccccc">見出し2</td>
            <td bgcolor="#cccccc">見出し3</td>
        </tr>
        <tr>
            <td align="left">左</td>
            <td align="center">中</td>
            <td align="right">右</td>
        </tr>
    </tbody>
</table>

表示:
見出し1 見出し2 見出し3
左寄せ 中寄せ 右寄せ

セル内縦位置

セル内の文字位置の指定となります、valign=”” で 上端揃え(top)、中央揃え(middle)、下端揃え(bottom) の指定ができます。但し、1行で収まるようなときは指定しても何も変わりません。

<table border="1" cellspacing="0" cellpadding="3">
    <tbody>
        <tr>
            <td bgcolor="#cccccc">見出し1</td>
            <td bgcolor="#cccccc">見出し2</td>
            <td bgcolor="#cccccc">見出し3</td>
            <td bgcolor="#cccccc">見出し4</td>
        </tr>
        <tr>
            <td>あ<br />い<br />う<br />え<br />お></td>
            <td valign="top">上端揃えlt;/td>
            <td valign="middle">中央揃え</td>
            <td valign="bottom">下端揃え</td>
        </tr>
    </tbody>
</table>

表示:
見出し1 見出し2 見出し3 見出し4




上端揃え 中央揃え 下端揃え

セルの結合

表をきれいに見せるために横のセルと結合するには colsapn属性 を、縦に結合するには rowsapn 属性を使い、結合する行数、列数を指定します。

<table border="1" cellspacing="0" cellpadding="3">
    <tbody>
        <tr>
            <td rowspan="2" valign="middle">2行1列</td>
            <td colspan="2" valign="middle" align="center">1行2列</td>
        </tr>
        <tr>
            <td>データ1</td>
            <td>データ2</td>
        </tr>
    </tbody>
</table>

表示:
2行1列 1行2列
データ1 データ2

簡単にHTMLで表を作成したい

と、データを埋めるだけでなく、そもそもHTMLで表を記載するのは面倒くさい。オンラインでHTMLで表を作成できる「Table Tag Generator」を使っていましたが、それでも、超簡単とまではなりません。

どうせならスプレッドシートで作成した表をHTML表記に変換するようなツールがあればいい!そういのを作成している賢い人はいないのかと探してみると、

「いらっしゃいました!」

Googleスプレッドシートで作成した表を 背景色、文字色、セルの結合、文字寄せ、文字揃え、セル内の改行 など シートで作成した見た目に近い形で、HTMLのTABLEタグに変換してくれます。


モーリーさんのスクリプトをカスタマイズ

モーリーさんが作られたスクリプトを若干変更して使わせていただきました。

変更点
  • 枠線・余白を設定
  • <tbody>タグの追加
  • 文字の縦位置を中央揃えに
  • 見出しの変更

枠線・余白 + <tbody>タグ

<table>タグに枠線と余白の設定を追加し、併せて<tbody>タグを追加

【変更前】13行目

var tableTag = "<table>"; // テーブルタグを格納する

【変更後】
表に1pxの枠線で囲み、セル内の余白を3pxに + <tbody> タグを追加

var tableTag = '<table border="1" cellspacing="0" cellpadding="3"><tbody>'; // テーブルタグを格納する 

【変更前】113行目

tableTag += "</table>"; // テーブルタグを閉じる

【変更後】
</tbody>タグを追加

tableTag += "</tbody></table>"; // tbodyとテーブルタグを閉じる


文字の縦位置を中央揃えに

文字の縦位置についても取得とありますが、Google Sheets で ”垂直方向の位置” を変更しても、なぜか常に bottom (下端揃え)となっていたので、シートの設定に関わらず、middle(中央揃え)としました。下記では<td>タグで1セルづつ、文字の縦位置を設定していますが、<tr>タグに valign=”middle” を追加すれば、行全体を “中央揃え” にすることができます。

【変更前】97行目から105行目

// 縦方向の文字寄せ
var alignString = range.getVerticalAlignments()[i][j]; // スプレッドシートのセルの文字寄せの状態を取得する
switch(alignString){ // 文字寄せの種類別処理
    case "top": // 上寄せ
    //case "middle": // 中央寄せ(縦)テーブルタグのセルのデフォルト位置なので記述しない
    case "bottom": //下寄せ
        rowTag += ' valign="' + alignString + '"'; // テーブルタグの文字寄せの属性値を作成する
        break;
}

【変更後】
セルの文字寄せ状態は取得せずに、常に valign=”middle”(中央揃え)とする。

// 縦方向の文字寄せ
rowTag += ' valign="middle"'; // 中央揃えに設定

見出しの変更

太文字のセルを見出しとして <td> ではなく <th> を設定するようになっていましたが、背景色などその他が設定されないので、太文字の場合には、見出しとして<th>タグに変更するけど、それ以外のシートの属性は、反映されるように変更。

【変更前】71-85行目

// 通常・見出しセル、セルの背景色、文字色を設定する
var cellTag = ""; // セルタグ var colorString = ""; // 背景色指定の属性値 if(range.getFontWeights()[i][j] === "normal"){ // 文字が通常の場合(太字でない場合) cellTag = "td" // 通常のセル if(range.getBackgroundColors()[i][j] !== "#ffffff"){ // 白色の場合 colorString = ' bgcolor="' + range.getBackgroundColors()[i][j] + '"'; //色指定の属性値を追加する } }else{ // それ以外の場合 cellTag = "th"; // 見出しセル } rowTag += "<" + cellTag + margeString + colorString; // セルの結合と背景色指定を追加する if(range.getFontColors()[i][j] !== "#000000"){ // 文字が黒でない場合 rowTag += ' style="color:' + range.getFontColors()[i][j] + '"'; // 文字色指定を追加する }

【変更後】
通常文字であれば<td>、太文字であれば、見出しタグ<th>とする。

// 通常・見出しセル、セルの背景色、文字色を設定する
var cellTag = ""; // セルタグ
var colorString = ""; // 背景色指定の属性値
if(range.getFontWeights()[i][j] === "normal"){ // 文字が通常の場合(太字でない場合)
    cellTag = "td"; // 通常のセル
} else { //見出しセル
    cellTag = "th"; // 見出しセル
}        
if(range.getBackgroundColors()[i][j] !== "#ffffff"){ // 白色の場合
    colorString = ' bgcolor="' + range.getBackgroundColors()[i][j] + '"'; //色指定の属性値を追加する
}
rowTag += "<" + cellTag + margeString + colorString; // セルの結合と背景色指定を追加する
if(range.getFontColors()[i][j] !== "#000000"){ // 文字が黒でない場合
    rowTag += ' style="color:' + range.getFontColors()[i][j] + '"'; // 文字色指定を追加する
}

とっても簡単にGoogleシートからHTMLの表に変換

象と散歩: アレクサ、ポモドーロを開始して!」の表も、Googleシートで作成した表をこちらのスクリプトでHTML変換しています。

とっても便利です。ありがとうございます!!!


Udemy オススメ講座

【新IDE対応】Google Apps Script(GAS)の基礎を完全習得

【新IDE対応】Google Apps Script(GAS)の基礎を完全習得

講師:事務職たらこ

印象に残りやすい手書き風スライドを用いGASの基本的なプログラミングを気軽に学ぶことができる。本講座でGASを活用した自動化ができるレベルにはなれないが、基礎としては十分。

Post Date:2020年5月31日 

アレクサ、ポモドーロを開始して!

Echo Plus

象と散歩: ポモドーロ・テクニックでテレワークの生産性を高める」 でポモドーロテクニックとキッチンタイマーの代わりに Alexaスキルの「集中モード」を使う方法を紹介しました。「集中モード」は、リマインダーをセットする方法なので、ポモドーロを実行中に好きな音楽や環境音を流すこともできます。しかし、常に25分+5分で実行してくれないというところが残念です。また経過時間もわからないので、25分経っても「キリがいいところまで」と思ってしまいます。

ならば、自分好みのものを作るしかない!

象と散歩: Amazon Echo でラジオ体操」で、Alexa定型アクションの「待機」を使ってラジオ体操開始の3分前を通知するようにしたので、同じように「待機」を使えばタイマーチックな動きができるはずです。

アレクサ、ポモドーロを開始して

といえば、25分間(作業)+5分間(休憩)をガイダンスする定型アクションを作ってみました。


ポモドーロ・テクニックとは

こちらは、再掲となりますが、ポモドーロ・テクニックとは、1980年代後半ににイタリア人のフランチェスコ・シリロ氏によって開発された時間管理術です。ポモドーロとは、イタリア語でトマトを意味し、トマト型のキッチンタイマーを時間管理に使用したことが由来です。

ポモドーロ・テクニックを始めようと思ったらフランチェスコ・シリロ(著)『どんな仕事も「25分+5分」で結果が出る ポモドーロ・テクニック入門』を一読ください。

ポモドーロ・テクニックは、簡単にいってしまえば、25分間集中(1ポモドーロ)して、5分間の休憩というセットで勉強・仕事をします。そして、4セット(2時間)やったら20-30分の長めの休憩をとるというものです。


定型アクションの設定方法

定型アクションは、Alexaアプリで設定します。設定方法については、「Amazon.co.jp: Alexaの定型アクションを活用しよう」に詳細の説明があるので参考にしてみてください。

ポモドーロ・タイマーの設定ポイントは、

  • 経過時間がわかる(頻度が多いとウザい)
  • 残り5分で通知
  • 1ポモドーロ単位で実行

としたところです。

経過時間については、初め5分毎に通知したのですが、これだと返って気が散るので、10分経った時点で通知するようにしました。また、最後にもうひと踏ん張りして予定のタスクを終わらせるために残り5分を通知します。

1ポモドーロ(1セット)としているのは、定型アクションの実行が途中で止められないことからです。その代わりに最後に次のポモドーロを促すようにしてみました。


実際の設定値

開始フレーズは、お好みですが、

アレクサ、ポモドーロを開始して

にしています。各終了時にはサウンドでベルを鳴らします。10分を「じゅっぷん」と記述しているのは、Alexaに正しく発音してもらうためです。

定型アクションの設定
タイムライン アクション 設定概要
開始Alexaのおしゃべり「ポモドーロを開始します。25分間作業に集中してください。」
サウンドその他 > 時計
10分経過待機接続時間 00:10:00(10分間)
Alexaのおしゃべり「じゅっぷん、経過しました。」
残り5分待機接続時間 00:10:00(10分間)
Alexaのおしゃべり

「残り5分です。」

終了&休憩開始待機接続時間 00:05:00(5分間)
サウンドベルとブザー > ベル
Alexaのおしゃべり「お疲れさまでした。5分間の休憩に入ります。」
休憩終了待機5分間
サウンドベルとブザー > ベル
Alexaのおしゃべり「5分間の休憩時間が終了しました。」
リマインドAlexaのおしゃべり「ポモドーロをもう一度実行する場合は、アレクサ、ポモドーロを開始して、と言ってください。」


ポモドーロ実行中の音楽

無音だとなぜか集中できません。カフェで勉強や仕事をする方が捗るという方も多いかと思います。作業的なことをするときは、自分の好きな音楽をかけていますが、考えるときは、単純な音にしています。

Alexaスキルにも色々な音がありますが、どれも音質やループ時間の短さという点でなかなか満足できるものはありません。気持ちよくバックグランドで流す音はないかとAmazonミュージックで探してみましたが、ネイチャーカフェ シリーズ が、かなり気持ちよい。

ネイチャーカフェ ~波のハーモニー~
ネイチャーカフェ ~川のせせらぎ~
ネイチャーカフェ ~森と小鳥~

音質もいいですし、尺も1時間以上と十分にあります。

「波のハーモニー」は、ステレオ感満載で臨場感があります。気分はトロピカル! ただ、Amazon Echo 単体ではモノラル再生しかできないので、2台購入してステレオペアとするか、外部スピーカに接続して聴くことを勧めます。

Post Date:2020年5月27日 

LaTex で数式を書く最も簡単な方法

Google Colaboratory で Markdown

Markdown(マークダウン)で Latex を使って数式を書く方法について「象と散歩: TyporaでMarkdownを始めよう!」で紹介しましたが、利用頻度の低い LaTex の書式なんて、直ぐに記憶の彼方に、、、。

しかし、今は便利な世の中。オンラインで、ポチポチと式を選んでいくと簡単に LaTex を作成することができます。

アカウントを登録しなくて利用できるサービスには下記の2つがあります。

一長一短ありますが、操作性の観点では HostMath の方が使いやすいです。


LaTexの基本は押さえておく

オンラインサービスを使う前に、LaTexの基本は理解しておきましょう。

基本形は、

\(コマンド){値}

とシンプルです。これだけ理解していれば大丈夫です。

例えば、ルートを使う場合には、

\sqrt{数値 or 式}

と、記載すれば、下記のように表示されます。

\[ \sqrt{数値 \, or \, 式} \]

HostMathでLaTexを作成

では、さっそくHostMath を使って数式を作っていきます。例題は分散です。

\[ \sigma^2 = \frac{1}{n} \sum_{i=1}^n(x_{i} - \bar{x})^2 \]


σの二乗

"GK&Fun (Greek And Function)” からσを選択します。エディター画面に \sigma と表示されて、下のビューアー画面には、σ が表示されます。

HostMathでLaTex

べき乗は、”^” を使います。エディター画面で \sigma の後に ^2= まで入力します。

HostMathでLaTex

式の左側が完成です。


分数の入力

続いて1/nを入力するために、”Math” から ”ab/cd” を選択します。

エディター画面には \frac{ab}{cd} が追加され、プレビュー画面には、ab/cd が追加されています。

HostMathでLaTex

ab が分子、cd が分母なので、ab を 1 に cd を n に書き換えます。

HostMathでLaTex

Σの入力

続いては、Σの部分になります。”Math” から ”Σ” を選択すると、\sum_a^b が追加されました。

HostMathでLaTex

しかし、この形式は、これだけ理解すれば大丈夫といった基本形と異なります。値がひとつなので{}が省略されていますが、正しくは下記となります。

\sum_{下限}^{上限}

エディター画面で、下限を {i=1}、上限を {n} に書き換えます。

※{}で括らないで、a の部分を i=1 にしてしまうと違う解釈となってしまいます。

HostMathでLaTex

(x-x̄)^2

エディター画面で (x-x)^2 を追加します。

HostMathでLaTex

エディター画面で、2二つ目の x を選択して、”Logic” から ā を選択すると \bar{a} となります。

HostMathでLaTex

\bar{a} を \bar{x} とすれば、完成です。

HostMathでLaTex

完成した式(LaTex)をMarkdownで利用する

今回はTyporaではなく、Google Colaboratory で利用します。

Google Colaboratory については、「象と散歩: 1分でPythonの学習を始める!」で紹介していますが、Googleが提供する Python 実行環境です。テキストを Markdown で記載できます。

Google Colaboratory で LaTex を使う場合には、数式を $$ で囲みます。

$$ \sigma^2=\frac{1}{n}\sum_{i=1}^n(x_{i}-\bar{x})^2 $$

Google Colaboratory

ブログで LaTex を使って式を書く

ブログでLaTexで記載した数式を表示するためには 「MathJax」 を利用します。

CDNサービスが提供されているので下記のコードを </head> の前に追加します。

<script async='async' src='https://cdnjs.cloudflare.com/ajax/libs/mathjax/2.7.2/MathJax.js?config=TeX-MML-AM_CHTML'/

LaTex で記載した数式を使う場合には、下記のように “\[“ で囲みます。

\[
\sigma^2 = \frac{1}{n} \sum_{i=1}^n(x_{i} - \bar{x})^2
\]

下記のように表示されます。

\[ \sigma^2 = \frac{1}{n} \sum_{i=1}^n(x_{i} - \bar{x})^2 \]

象と散歩:人気の投稿(過去7日間)