Masalah yang dihadapi apabila menggunakan opentbs untuk menjana fail odt: nilai kunci yang sama dipaparkan dalam baris yang sama dan bukannya lajur yang berasingan.
P粉257342166
P粉257342166 2024-04-06 20:18:18
0
1
408

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:

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 menunjukkanthin

| 156 | 233 | 110 |

Barisan kedua hanya memaparkanheavy

| 128 | 25 | 412 |

Barisan ketiga hanya memaparkantotal

| 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粉257342166
P粉257342166

membalas semua (1)
P粉116654495

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] | +--------------------------+
    Muat turun terkini
    Lagi>
    kesan web
    Kod sumber laman web
    Bahan laman web
    Templat hujung hadapan
    Tentang kita Penafian Sitemap
    Laman web PHP Cina:Latihan PHP dalam talian kebajikan awam,Bantu pelajar PHP berkembang dengan cepat!