如何确定excel文件的字符编码?

时间:2012-11-05 15:27:26

标签: excel character-encoding

  

可能重复:
  Excel to CSV with UTF8 encoding

场景:我有一个包含大量全局客户数据的excel文件。我不知道创建文件时使用了什么编码。

问题:如何确定excel文件中使用的字符编码,以便将其正确导入另一个软件?

1 个答案:

答案 0 :(得分:6)

对于Excel 2010,它应该是UTF-8。 MS指导:
http://msdn.microsoft.com/en-us/library/bb507946

“SpreadsheetML文档的基本文档结构由Sheets和Sheet元素组成,它们引用了工作簿中的工作表。为每个工作表创建了一个单独的XML文件。例如,包含两个工作表的工作簿的SpreadsheetML名称MySheet1和MySheet2位于Workbook.xml文件中,如以下代码示例所示。

<?xml version="1.0" encoding="UTF-8" standalone="yes" ?> 
<workbook xmlns=http://schemas.openxmlformats.org/spreadsheetml/2006/main xmlns:r="http://schemas.openxmlformats.org/officeDocument/2006/relationships">
    <sheets>
        <sheet name="MySheet1" sheetId="1" r:id="rId1" /> 
        <sheet name="MySheet2" sheetId="2" r:id="rId2" /> 
    </sheets>
</workbook>

工作表XML文件包含一个或多个块级元素,例如SheetData。 sheetData表示单元格表,包含一个或多个Row元素。一行包含一个或多个Cell元素。每个单元格都包含一个CellValue元素,表示单元格的值。例如,工作簿中第一个工作表的SpreadsheetML(单元格A1中只有值100)位于Sheet1.xml文件中,如下面的代码示例所示。

<?xml version="1.0" encoding="UTF-8" ?> 
<worksheet xmlns="http://schemas.openxmlformats.org/spreadsheetml/2006/main">
    <sheetData>
        <row r="1">
            <c r="A1">
                <v>100</v> 
            </c>
        </row>
    </sheetData>
</worksheet>

检测细胞编码:

https://metacpan.org/pod/Spreadsheet::ParseExcel::Cell

http://forums.asp.net/t/1608228.aspx/1