Unity3D讀取之(二)——讀取Excel文件內容

Unity3D開發過程中,對於Excel表的讀取是很頻繁的一件事情,主要是用來記錄各種數據,各個平臺可能有很多方式方法,比如Android,你可以插件,也可以用第三方Java開發,打包成Plugin下用的.dll包,再C#和Java交互實現Excel讀取(比較麻煩,不建議,除非你對安卓開發也很瞭解,可以使用)
今天說一下FlexReader插件,專門讀取Excel文件內容。
直接上代碼:
插件:可以上Asset Store上直接搜FlexReader(土豪使用)
下載地址:鏈接:https://pan.baidu.com/s/1mLTu2ymQY0Wmvpzb0DQ5iw 密碼:j9m6
//異步加載文件

 IEnumerator LoadGuideAync(string path, DownloadHandler handler)
    {
        var url = Path.Combine(Application.streamingAssetsPath, path);
        using (var request = UnityWebRequest.Get(url))
        {
            yield return request.SendWebRequest();
            var bytes = request.downloadHandler.data;
            handler(bytes);
        }
    }

//加載到內容回調

  void LoadGuideData(byte[] bytes)
    {
        //bytes就是加載Excel中文件內容流
        if (bytes.Length == 0)
            return;
        //通過插件的WorkBook類轉換得到一個列表,這個列表的大小就表示的是Excel中表的個數。
        var book = new WorkBook(bytes);
        Debug.Log(book.Count);
        if (book.Count < 2)
            return;
        InitNoviceGuideRectTransform(book[0]);
        InitNoviceGuideRectTransform(book[1]);
    }

對每一個表進行解析,讀取每格的數據

         void InitNoviceGuideRectTransform(IEnumerable<Row> rows)
    {
        int index = -1;
        int count = rows.Count(r => !r.IsEmpty());
        if (count == 0)
            return;
                //將二維數字存到列表 ,通過行列讀取 
        List<Row> rowData = new List<Row>(rows);
                 for (int j = 1; j < rowData .Count; j++)//行
        {
            for (int i = 0; i < rowData[j].Count; i++)//列
            {
                Debug.Log(rowData[j][i].Text);
            }
        }  
  }

就是這麼簡單,讀取你想要的數據,幹你想幹的事情。

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章