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;
}