【解决】UnityWebRequest 下请求 EXCEL数据 返回 PK 结果的解决方案

开发平台:Unity
编程平台:Visual Studio 2020以上
使用语言:C#

问题描述


  使用 UnityWebRequest 请求 Excel 数据内容,通过 Debug.Log(requests.downloadHandler.text)返回 PK 结果值问题。(注意:此处为.xlsx 的Excel表)

public IEnumerator GetExcelData()
{
    
    
	UnityWebReqeust requests = UnityWebRequest.Get(Application.StreamingAssets + "/MyData.xlsx");
	yield renturn requests.SendWebRequest();
	
	Debug.Log($"{
      
      requests.downloadHandler.text}");
}

问题分析:


  这似乎是 UnityWebReqeust 无法解析 .xlsx 格式数据的问题。暂未找到问题出现的原因。

解决方案


1)使用 Excel.DLL 库作为替代解决方案

using Excel;
using UnityEngine;

public class Example
{
    
    
	public IEnumerator GetExcelData(string path)
	{
    
    
		// .... 详见网络文章
	}
}

注意 以下情况:

  • xlsx 数据文本内所有单元格格式均需设置为 文本。否做应对 日期、货币等数据格式下,获取的数据信息是经处理后的数字内容。
  • xlsx 的访问是建立于 该对象未通过 EXCEL 软件打开为前提下进行。若后台存在访问数据表的应用正在运行,则提示 数据获取失败的 Error 报错。

2)使用 CSV 数据格式替代方案

操作方法:将原 .xlsx 数据表另存为 .csv 数据文件。通过 UnityWebRequest 可直接获取内容。

注意 以下情况:

  • csv 数据文件易出现编码格式错误的情况。应避免使用 Windows 内置编码格式进行转码。选择使用 Nodepad ++ 进行查看与编码。
  • csv 数据分类以 , 区别。不适用于部分文本内容存在 , 情况下的数据解析。

猜你喜欢

转载自blog.csdn.net/qq_51026638/article/details/125792390