7

以下に示すように、ソースをHTMLテーブルに変換してコードコメントで使用するための「グラフィックテキスト」(おそらくHTMLテーブルのASCIIアートと考えてください)に変換するのに役立つツール(理想的にはコマンドラインベース)はありますか?

たとえば、次のHTMLテーブルソースがあるとします

<TABLE BORDER=1>
  <CAPTION>A test table with merged cells</CAPTION>
  <TR><TH ROWSPAN=2><TH COLSPAN=2>Average
  <TH ROWSPAN=2>other<BR>category<TH>Misc
  <TR><TH>height<TH>weight
  <TR><TH ALIGN=LEFT>males<TD>1.9<TD>0.003
  <TR><TH ALIGN=LEFT ROWSPAN=2>females<TD>1.7<TD>0.002
</TABLE>

ツールは、コードコメントに埋め込まれる次のようなものを出力します(のような/*…*/):

/*
          A test table with merged cells
+----------+-------------------+----------+--------+ 
|          |      Average      |  other   |  Misc  |
|          +---------+---------+ category +--------|
|          |  height |  weight |          |        |
|----------+---------+---------+----------+--------|
| males    |   1.9   |  0.003  |          |        |
|----------+---------+---------+----------+--------|
| females  |   1.7   |  0.002  |          |        |
+----------+---------+---------+----------+--------+
*/

背景:HTMLテーブルから値を読み取るコードには、複雑なHTMLテーブルレイアウトのテキストベースのグラフィック表現を表すコメントを付けることができます。後でコードを管理している人は、たとえば、コードの一部がHTMLテーブルをスライスおよびダイシングしたり、特定のセル位置で値を取得したりする方法を理解しやすくなります。

4

7 に答える 7

2
  elinks -dump 1 

http://elinks.or.cz/documentation/manpages/elinks.1.html

于 2010-05-17T12:12:25.160 に答える
2

HTML::TreeBuilderText::ASCIITableは、仕事をするのにほんの少しの接着剤が必要なように見えます。

于 2010-05-17T12:21:45.543 に答える
1

これを正確に実行する別のツール(YATG、Yet Another Table Generator)があり、Pythonで記述されています。

参照:https ://github.com/10gic/yatg

出力例(emacsスタイル):

+---------+-----------------+----------+
|         | Average         | Red eyes |
|         +--------+--------+          |
|         | height | weight |          |
+---------+--------+--------+----------+
| Males   | 1.9    | 0.003  | 40%      |
+---------+--------+--------+----------+
| Females | 1.7    | 0.002  | 43%      |
+---------+--------+--------+----------+

出力例(orgmodeスタイル):

| Header content 1 | Header content 2 |
|------------------+------------------|
| Body content 1   | Body content 2   |
| Body content 3   | Body content 4   |
| Body content 5   | Body content 6   |

出力の例(mysqlスタイル):

+------------------+------------------+
| Header content 1 | Header content 2 |
+------------------+------------------+
| Body content 1   | Body content 2   |
| Body content 3   | Body content 4   |
| Body content 5   | Body content 6   |
+------------------+------------------+

出力例(マークダウンスタイル):

| Header content 1 | Header content 2 |
|------------------|------------------|
| Body content 1   | Body content 2   |
| Body content 3   | Body content 4   |
| Body content 5   | Body content 6   |
于 2018-04-03T16:10:59.587 に答える
1

オンラインツールを見つけました:https ://tableconvert.com/

  1. [インポート]タブをクリックします
  2. HTMLタブを選択
  3. HTMLデータを貼り付けます
  4. [データのインポート]をクリックします

結果:

|         | Average | othercategory | Misc |
|---------|---------|---------------|------|
| height  | weight  |
| males   | 1.9     | 0.003         |
| females | 1.7     | 0.002         |

完璧ではありませんが、機能します:)

于 2021-01-17T22:47:41.357 に答える
0

どの言語について話しているのかわかりませんが、この関数(PHP)を使用します。

function text_table($data)
{
    $keys = array_keys(end($data));
    $size = array_map('strlen', $keys);

    foreach(array_map('array_values', $data) as $e)
        $size = array_map('max', $size,
            array_map('strlen', $e));

    foreach($size as $n) {
        $form[] = "%-{$n}s";
        $line[] = str_repeat('-', $n);
    }

    $form = '| ' . implode(' | ', $form) . " |\n";
    $line = '+-' . implode('-+-', $line) . "-+\n";
    $rows = array(vsprintf($form, $keys));

    foreach($data as $e)
        $rows[] = vsprintf($form, $e);
    return $line . implode($line, $rows) . $line;
}

使用法:

    echo "<pre>\n";
    echo text_table($array);
    echo "</pre>\n";
于 2010-05-17T12:08:19.187 に答える
0

Pythonで書かれた、まさにこれを行うツールがあります。

参照:https ://github.com/gustavklopp/DashTable

DashTable

HTMLテーブルからASCIIテーブルへ、colspanとRowspanが許可されます!

于 2015-06-27T14:32:04.130 に答える
0

参照:CSVデータをstackoverflowに適したテキストのみのテーブルに変換するツール

オンラインツールを強くお勧めします:CSVをASCIIテーブルに変換します

これは、テーブル形式用に設計された私のお気に入りの変換ツールであり、csvをさまざまなわかりやすいプレーンテキストテーブルに変換できます。

  1. ASCIIテーブル(mysqlスタイル)
+─────────────+─────────+───────────────────+
| 2012-05-02  | palani  | My first comment  |
+─────────────+─────────+───────────────────+
| 2012-05-02  | raja    | My second comment |
+─────────────+─────────+───────────────────+
| 2012-05-02  | palani  | My third comment  |
+─────────────+─────────+───────────────────+
| 2012-05-03  | raja    | My fourth comment |
+─────────────+─────────+───────────────────+
  1. reStructuredTextグリッドテーブル
+-------------+---------+-------------------+
| 2012-05-02  | palani  | My first comment  |
+=============+=========+===================+
| 2012-05-02  | raja    | My second comment |
+-------------+---------+-------------------+
| 2012-05-02  | palani  | My third comment  |
+-------------+---------+-------------------+
| 2012-05-03  | raja    | My fourth comment |
+-------------+---------+-------------------+
  1. Unicodeテーブル(1行)
┌─────────────┬─────────┬───────────────────┐
| 2012-05-02  | palani  | My first comment  |
├─────────────┼─────────┼───────────────────┤
| 2012-05-02  | raja    | My second comment |
| 2012-05-02  | palani  | My third comment  |
| 2012-05-03  | raja    | My fourth comment |
└─────────────┴─────────┴───────────────────┘
  1. Unicodeテーブル
╔═════════════╦═════════╦═══════════════════╗
║ 2012-05-02  ║ palani  ║ My first comment  ║
╠═════════════╬═════════╬═══════════════════╣
║ 2012-05-02  ║ raja    ║ My second comment ║
║ 2012-05-02  ║ palani  ║ My third comment  ║
║ 2012-05-03  ║ raja    ║ My fourth comment ║
╚═════════════╩═════════╩═══════════════════╝

そして、プレーンテキストASCIIテーブルの他のいくつかのフォーマット。「個別の行を強制する」と入力して、タイトルを明確に表現するかどうかを決定することもできます。

ここに画像の説明を入力してください

残念ながら、クロス行とクロス列はまだサポートされていません。それがあなたのニーズを満たしているかどうかはわかりません。

于 2021-12-02T01:27:41.510 に答える