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