diff --git a/app/admin/import-export/export-ipaddr.php b/app/admin/import-export/export-ipaddr.php index fccef110e0c7ae7ad5a5e4e61032983083ba9f64..0e6bdc1adcd2ab6f9069a458e7709240ff3963cc 100644 --- a/app/admin/import-export/export-ipaddr.php +++ b/app/admin/import-export/export-ipaddr.php @@ -287,6 +287,7 @@ $curRow++; if( (isset($_GET['exportSections'])) && ($_GET['exportSections'] == "on") ) { // Create a worksheet $worksheet_sections =& $workbook->addWorksheet('Sections'); + $worksheet_sections->setInputEncoding("utf-8"); $curRow = 0; $curColumn = 0; diff --git a/app/admin/import-export/export-subnets.php b/app/admin/import-export/export-subnets.php index d381a07518fd670b99e12e3730dd8d7f9468388d..781f1e5ea27f803fad71432b29a9502ed035ba23 100644 --- a/app/admin/import-export/export-subnets.php +++ b/app/admin/import-export/export-subnets.php @@ -252,6 +252,7 @@ $curRow++; if( (isset($_GET['exportSections'])) && ($_GET['exportSections'] == "on") ) { // Create a worksheet $worksheet_sections =& $workbook->addWorksheet('Sections'); + $worksheet_sections->setInputEncoding("utf-8"); $curRow = 0; $curColumn = 0; diff --git a/app/admin/import-export/export-vlan.php b/app/admin/import-export/export-vlan.php index b1f56a6b03fe2a5b52af7ef5a5a407b315020675..802badbaebe9f05ff9b16fd229ffab67028282a8 100644 --- a/app/admin/import-export/export-vlan.php +++ b/app/admin/import-export/export-vlan.php @@ -157,6 +157,7 @@ if( ) { // Create a worksheet $worksheet_domains =& $workbook->addWorksheet('Domains'); + $worksheet_domains->setInputEncoding("utf-8"); $curRow = 0; $curColumn = 0; diff --git a/app/admin/import-export/import-template.php b/app/admin/import-export/import-template.php index 1c81bf833c3e42625aa37d08881f459c6b16d072..83ea8c6e58275cdff3b8cd9f30931cc70f83aa22 100644 --- a/app/admin/import-export/import-template.php +++ b/app/admin/import-export/import-template.php @@ -22,6 +22,7 @@ $lineCount = 0; // Create a worksheet $worksheet = $workbook->addWorksheet("template"); +$worksheet->setInputEncoding("utf-8"); if ($type == 'subnets'){ diff --git a/functions/PEAR/Spreadsheet/Excel/Writer/Workbook.php b/functions/PEAR/Spreadsheet/Excel/Writer/Workbook.php index 4b3cbf500b6511f6660fe28c709746fa5669200d..6cd72019a601bf9ae4842ba8a53b524f479b47b9 100755 --- a/functions/PEAR/Spreadsheet/Excel/Writer/Workbook.php +++ b/functions/PEAR/Spreadsheet/Excel/Writer/Workbook.php @@ -326,6 +326,10 @@ class Spreadsheet_Excel_Writer_Workbook extends Spreadsheet_Excel_Writer_BIFFwri if (strlen($name) > 31) { return $this->raiseError("Sheetname $name must be <= 31 chars"); } + } else { + if (function_exists('iconv')) { + $name = iconv('UTF-8', 'UTF-16LE', $name); + } } // Check that the worksheet name doesn't already exist: a fatal Excel error. @@ -932,11 +936,15 @@ class Spreadsheet_Excel_Writer_Workbook extends Spreadsheet_Excel_Writer_BIFFwri } $grbit = 0x0000; // Visibility and sheet type - $cch = strlen($sheetname); // Length of sheet name + if ($this->_BIFF_version == 0x0600) { + $cch = mb_strlen($sheetname, 'UTF-16LE'); // Length of sheet name + } else { + $cch = strlen($sheetname); // Length of sheet name + } $header = pack("vv", $record, $length); if ($this->_BIFF_version == 0x0600) { - $data = pack("Vvv", $offset, $grbit, $cch); + $data = pack("VvCC", $offset, $grbit, $cch, 0x1); } else { $data = pack("VvC", $offset, $grbit, $cch); }