微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

Unity3D研究院之MAC&Windows跨平台解析Excel

转载注明出处:http://www.xuanyusong.com/archives/2429

 

Excel 和 ICSharpCode.SharpZipLib 是第三方开发包(后面我会附带下载地址的), 这个两个东西必须存在。这个开发包是跨平台的,并且完全独立不依赖微软的那一套小编。即时你的电脑中没有安装Excel也同样是可以很好的解析

通过代码来解析UserLevel.xlsx

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

		FileStream stream = File.Open(Application.dataPath + "/UserLevel1.xlsx",FileAccess.Read);
		IExcelDataReader excelReader = ExcelReaderFactory.CreateOpenXmlReader(stream);
		do{
			// sheet name
			Debug.Log(excelReader.Name);
			while (excelReader.Read()) {
				for (int i = 0; i < excelReader.FieldCount; i++) {
					string value = excelReader.Isdbnull(i) ? "" : excelReader.GetString(i);
					Debug.Log(value);
				}
			}
		}while(excelReader.NextResult());
	}
 
}

result.Tables[0].Rows.Count;

 

这里0表示第一个sheet,如果你有多个sheet的话,可以写sheet的名子

result.Tables[“mySheet”].Rows.Count;

http://exceldatareader.codeplex.com/ 也可以在这里查阅详细的文档

本文下载地址: http://vdisk.weibo.com/s/qDm4IY-Ht09-  

 

 

另:

使用ExcelPackage生成Excel2007电子表格

        ExcelPackage一个在服务端生成Excel 2007 电子表格的Library. 下面的代码生成XLSX文件示例:

FileInfo XLSXFile = new FileInfo(XLSXFileName);
using (ExcelPackage xlPackage = new ExcelPackage(XLSXFile))
{
    ExcelWorksheet worksheet = xlPackage.Workbook.Worksheets.Add("Sheet1");
 
    int row = 1;
    foreach (DaTarow dr in dataTable.Rows)
    {
        int col = 1;
 
        foreach (object o in dr.ItemArray)
        {
            worksheet.Cell(row,coL++).Value = o.ToString().Trim();
        }
 
        row++;
    }
 
    xlPackage.Save();
}

 

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 [email protected] 举报,一经查实,本站将立刻删除。

相关推荐