cari

Rumah  >  Soal Jawab  >  teks badan

Masalah yang dihadapi apabila menggunakan opentbs untuk menjana fail odt: nilai kunci yang sama dipaparkan dalam baris yang sama dan bukannya lajur yang berasingan.

Saya menggunakan perpustakaan yang dipanggil OpenTbs untuk mencipta odt menggunakan PHP, saya menggunakannya kerana penjanaan lajur dan baris yang dinamik.

Saya tahu cara membuat baris dan lajur, tetapi saya tidak tahu cara menyusunnya.

Biar saya tambahkan contoh:

Jadi pertama saya akan menambah ini pada odt saya,

+-- ---------------------------------------------------+
|    Thin              |    Heavy   |      Total       |
+------------------------------------------------------+
| [b.date]             |            |                  |
+------------------------------------------------------+
| [b.thin;             |            |                  |
| block=tbs:cell;      |            |                  |
|  parallel=tbs:table] |            |                  |
|                      |            |                  |
+------------------------------------------------------+
| [b.heavy]            |            |                  |
+------------------------------------------------------+
| [b.total]            |            |                  |
+------------------------------------------------------+

Kemudian dalam kod saya akan gunakan:

<?php
include_once('tbs_class.php');
include_once('plugins/tbs_plugin_opentbs.php');

$TBS = new clsTinyButStrong;
$TBS->Plugin(TBS_INSTALL, OPENTBS_PLUGIN);

$TBS->LoadTemplate('template.odt',OPENTBS_ALREADY_UTF8);
$data = array(
    array('date' => '2013-10-13', 'thin' => 156, 'heavy' => 128, 'total' => 284),
    array('date' => '2013-10-14', 'thin' => 233, 'heavy' =>  25, 'total' => 284),
    array('date' => '2013-10-15', 'thin' => 110, 'heavy' => 412, 'total' => 130),
);
$TBS->MergeBlock('b', $data);



// $TBS->Plugin(OPENTBS_DEBUG_INFO, true); 

$output_file_name ="test_download.odt";
$TBS->Show(OPENTBS_DOWNLOAD, $output_file_name); 
?>

Output:

+ --------------------------------------+
|    Thin    |    Heavy   |   Total     |
+---------------------------------------+
| 156        | 233        | 110         |
+---------------------------------------+
| 128        | 25         | 412         |
+---------------------------------------+
|  284       | 284        | 130         |
+---------------------------------------+

Semua jahitan baik, tetapi jika kita membandingkannya dengan tatasusunan $data

$data = array(
    array('thin' => 156, 'heavy' => 128, 'total' => 284),
    array('thin' => 233, 'heavy' =>  25, 'total' => 284),
    array('thin' => 110, 'heavy' => 412, 'total' => 130),
);

Anda akan melihat bahawa baris pertama hanya menunjukkan thin

| 156 | 233 | 110 |

Barisan kedua hanya memaparkan heavy

| 128 | 25 | 412 |

Barisan ketiga hanya memaparkan total

| 284 | 284 | 130 |

Sebenarnya, kandungan seperti ini harus dipaparkan:

+ --------------------------------------+
|    Thin    |    Heavy   |    Total    |
+---------------------------------------+
|    156     |    128     |    284      |
+---------------------------------------+
|    233     |    25      |    284      |
+---------------------------------------+
|    110     |    412     |    130      |
+---------------------------------------+

Kemudian saya menyedari bahawa mungkin menambahkannya di bawah satu sama lain adalah masalahnya. Jadi jangan gunakan pada odt

+-- ----------------------------------------------+
|           Thin           |  Heavy   |  Total    |
+-------------------------------------------------+
| [b.thin;                 |          |           |
| block=tbs:cell;          |          |           |
| parallel=tbs:table]      |          |           |
+-------------------------------------------------+
| [b.heavy]                |          |           |
+-------------------------------------------------+
|  [b.total]               |          |           |
+-------------------------------------------------+

Saya menggunakan ini

+-- -------------------------------------------+
|    Thin             |    Heavy   |  Total    |
+----------------------------------------------+
|  [b.thin;           |  [b.heavy] | [b.total] |
|  block=tbs:cell;    |            |           |
|  parallel=tbs:table]|            |           |
|                     |            |           |
+----------------------------------------------+

Output:

+----------------------------------------------+
|          |         |         |       |       |
+----------------------------------------------+
|   128    |   25    |   412   |  522  |       |
+----------------------------------------------+

Seperti yang anda lihat ia tidak berulang pada tatasusunan dengan baik dan menghasilkan lajur kosong dan data yang ditunjukkan adalah rawak

Jadi jika sesiapa tahu apa yang salah dengan ini sila beritahu saya

Terima kasih!

Dikemas kini

Saya sedar bahawa dalam [r.thin;block=tbs:cell;parallel=tbs:table] 中我使用 cell 而不是 row

Jadi saya cuba mengubahnya -> [r.thin;tbs:row;parallel=tbs:table]Ia tidak berfungsi, tetapi lelaran pertama adalah betul:

+ --------------------------------------+
|    Thin    |    Heavy   |   Total     |
+---------------------------------------+
| 156        | 128        | 284         |
+---------------------------------------+

P粉257342166P粉257342166231 hari yang lalu784

membalas semua(1)saya akan balas

  • P粉116654495

    P粉1166544952024-04-07 16:11:53

    Berkenaan paralelisme 功能, keputusan yang anda dapat adalah betul. Selari 功能 melakukan cantuman mengikut lajur dan bukannya cantum mengikut baris.

    Untuk menggabungkan mengikut baris, templat anda mungkin kelihatan seperti ini:

    +---------------------------------------------------------------+
    | Row number | Thin                     |  Heavy    |  Total    |
    +---------------------------------------------------------------+
    | [b.#]      | [b.thin;block=tbs:row]   | [b.heavy] | [b.total] |
    +---------------------------------------------------------------+

    Untuk penggabungan mengikut lajur, templat anda mungkin kelihatan seperti ini:

    +-- -----------------------+
    |  Row number [b.#]        |
    +--------------------------+
    | [b.thin;                 |
    | block=tbs:cell;          |
    | parallel=tbs:table]      |
    +--------------------------+
    | [b.heavy]                |
    +--------------------------+
    |  [b.total]               |
    +--------------------------+

    balas
    0
  • Batalbalas