ODS形式でダウンロードする際にシート名が省略されると空白になってしまう問題

ODS形式でダウンロードする際にシート名が省略されると空白になってしまう問題

- Tatsuya Shirai の投稿
返信数: 1

 Excelの場合には,Sheet1, Sheet2, Sheet3,...といった具合に,add_worksheet()するたびに自動的にワークシート名が生成されます.ODS形式のソースにはその部分がコッポリと抜けていますのでで,シート名が空白になってしまいます.

 以下を追加しますとシート名が追加されます.Excelと違ってUTF-16LEに変換しなくては!などと悩まないで良いのは後発のメリットですね.

lib/odslib.class.php

class MoodleODSWorkbook {
    var $worksheets = array();
    var $filename;

    function MoodleODSWorkbook($filename) {
        $this->filename = $filename;
    }

    /* Create one Moodle Worksheet
     * @param string $name Name of the sheet
     */
    function &add_worksheet($name = '') {
    /// Create the Moodle Worksheet. Returns one pointer to it
// (Shirai127): ODS形式のブックのシート名を指定しなかった場合にシート名が無しになってしまう問題 (2009/03/24)
// (Shirai127): ここから追加
        if ($name == '') {
            $index     = count($this->worksheets);
            $sheetname = 'Sheet';
            $name = $sheetname.($index+1);
        }
// (Shirai127): ここまで追加
        $ws =& new MoodleODSWorksheet($name);
        $this->worksheets[] =& $ws;
        return $ws;
    }

添付 ODS_Sheetname.jpg
Tatsuya Shirai への返信

Re: ODS形式でダウンロードする際にシート名が省略されると空白になってしまう問題

- Tatsuya Shirai の投稿

バルクユーザ処理のODS形式でのダウンロードで現象を再現できます.

Trackerに報告しました(MDL-18668).

最大評点: お役立ち度: ★★★★★★★ (1)