1. 程式人生 > >在unity中讀取Excel的xlsx格式檔案

在unity中讀取Excel的xlsx格式檔案

      遇到了需要讀表格的需求,因為之前操作讀取csv檔案比較熟悉,本來也想把表格轉成csv格式讀取,但是實際操作過程中發現,表格中的內容是有逗號的,一整段文本里都有沒有任何規律的逗號,而讀csv檔案格子間是用逗號分隔的,所以用這個方法會把一個格子裡有逗號的文字分成幾個部分,這不是我期望的。所以我查了下用unity直接讀取xlsx表格的方法。在這兒記錄下來。

using UnityEngine;
using System.Collections;
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 ReadExcel:MonoBehaviour  {


    public string ExcelPathName;

    void Start() {
        GameReadExcel(ExcelPathName);
    }

    /// <summary>
    /// 只讀Excel方法
    /// </summary>
    /// <param name="ExcelPath"></param>
    /// <returns></returns>
    public static void GameReadExcel(string ExcelPath)
    {
        FileStream stream = File.Open(Application.dataPath + ExcelPath, 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 = 1; i < rows; i++)
        {
            for (int j = 0; j < columns; j++)
            {
                string nvalue = result.Tables[0].Rows[i][j].ToString();
                Debug.Log(nvalue);
            }
        }

    }
}
其中需要注意的是這個需要引用

這幾個封裝好的dll,前面倆的官網下載地址:http://exceldatareader.codeplex.com/

system.data.dll的路徑在unity安裝路徑下的Editor\Data\Mono\lib\mono\unity 這個路徑下