这几天研究了一个Mac下解析Excel ,这东西在Windows下有N种方法可以解析,但是在MAC上基本上都是不兼容的。。后来我无意间找到了一个神器,它可以跨平台解析Excel 。。。一般 Excel的格式分为两种一种是 .xls 还有一种是.xlsx ,这里我们只说.xlsx 。
如下图所示,大家看看我的工程文件,Excel 和 ICSharpCode.SharpZipLib 是第三方开发包(后面我会附带下载地址的), 这个两个东西必须存在。这个开发包是跨平台的,并且完全独立不依赖微软的那一套东东。即时你的电脑中没有安装Excel也同样是可以很好的解析。
那么这里我就是在通过代码来解析UserLevel.xlsx了,代码比较简单我就不注释了。 这个例子我在MAC和Windows下都试验过都能很好的运行。喔对,这里我还引入了System.Data.dll 因为这里我使用了DataSet来遍历数据表。
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
|
using
System
;
using
System
.
Collections
.
Generic
;
using
System
.
Linq
;
using
System
.
Text
;
using
System
.
Text
.
RegularExpressions
;
using
System
.
IO
;
using
Excel
;
using
System
.
Data
;
public
class
NewBehaviourScript
:
MonoBehaviour
{
void
Start
(
)
{
XLSX
(
)
;
}
void
XLSX
(
)
{
FileStream
stream
=
File
.
Open
(
Application
.
dataPath
+
"/UserLevel.xlsx"
,
FileMode
.
Open
,
FileAccess
.
Read
)
;
IExcelDataReader
excelReader
=
ExcelReaderFactory
.
CreateOpenXmlReader
(
stream
)
;
DataSet
result
=
excelReader
.
AsDataSet
(
)
;
int
columns
=
result
.
Tables
[
0
]
.
Columns
.
Count
;
int
rows
=
result
.
Tables
[
0
]
.
Rows
.
Count
;
for
(
int
i
=
0
;
i
<
rows
;
i
++
)
{
for
(
int
j
=
0
;
j
<
columns
;
j
++
)
{
string
nvalue
=
result
.
Tables
[
0
]
.
Rows
[
i
]
[
j
]
.
ToString
(
)
;
Debug
.
Log
(
nvalue
)
;
}
}
}
}
|
http://exceldatareader.codeplex.com/ 也可以在这里查阅详细的文档,文档说支持.xls 但是我没能实验成功。如果你只想解析.xls那么可以使用NPOI这个类库来解析.xls,它可以很好的解析。前段时间我实验成功了,但是它不能在mac上解析.xlsx最后作罢。