Unity读取Excel文件转换XML格式文件的方法-创新互联

不懂Unity读取Excel文件转换XML格式文件的方法?其实想解决这个问题也不难,下面让小编带着大家一起学习怎么去解决,希望大家阅读完这篇文章后大所收获。

我们提供的服务有:网站设计制作、网站设计、微信公众号开发、网站优化、网站认证、和林格尔ssl等。为超过千家企事业单位解决了网站和推广的问题。提供周到的售前咨询和贴心的售后服务,是有科学管理、有技术的和林格尔网站制作公司

此方法用到excel.dll

下载连接 点击打开链接

using System.Collections.Generic;
using UnityEngine;
using System.IO;
using System.Xml;
using Excel;
using System.Data;
 
/// 
/// 创建XML表
/// 
public class CreateXML : MonoBehaviour
{
 /// 
 /// 表头
 /// 
 public const string xmlRoot = "FZW_MASK_XML_TABLE";
 
 //Excel名字
 public string ExcelPathName;
 
 //xml文件路径;
 private string Path;
 //表文件名
 public string xmlName = "XMLTABLE.xml";
 //表名
 public string xmlTabeName = "XMLTABLE";
 
 //第一行字段
 private string[] tableTop;
 
 //表List
 private List tableList=new List();
 
 
 private void Awake()
 {
  //设置路径
  Path = Application.streamingAssetsPath + "/XMLTable/" + xmlName;
 
  //读取Excel
  ReadExcel(ExcelPathName);
 }
 
 
 /// 
 /// 读Excel
 /// 
 /// 
 /// 
 public void ReadExcel(string ExcelPath)
 {
  //excel文件位置 /MaskGame/ReadExcel/excel文件名
  FileStream stream = File.Open(Application.dataPath + "/MaskGame/ReadExcel/" + ExcelPath, FileMode.Open, FileAccess.Read);
  IExcelDataReader excelReader = ExcelReaderFactory.CreateOpenXmlReader(stream);
 
  DataSet result = excelReader.AsDataSet();
 
  int rows = result.Tables[0].Rows.Count;//获取行数(多少行信息)
  int columns = result.Tables[0].Columns.Count;//获取列数(多少列字段)
  
  
  //初始化字段
  tableTop = new string[columns];
  
 
  //存字段
  for (int i = 0; i < columns; i++)
  {
   tableTop[i]= result.Tables[0].Rows[0][i].ToString();
  }
 
  //从第二行开始读 读信息
  for (int i = 1; i < rows; i++)
  {
   //临时表
   string[] table = new string[columns];
   //赋值表信息
   for (int j = 0; j < columns; j++)
   {
    string nvalue = result.Tables[0].Rows[i][j].ToString();
    table[j] = nvalue; 
   }
   //添加到List
   tableList.Add(table);
  }
 }
 
 /// 
 /// 创建表格
 /// 
 private void CreateXMLTable()
 {
  //路径错误
  if (File.Exists(Path)) return;
 
  //xml对象;
  XmlDocument xmll = new XmlDocument();
  //跟节点
  XmlElement Root = xmll.CreateElement(xmlRoot);
 
  for (int i = 0; i < tableList.Count; i++)
  {
   XmlElement xmlElement = xmll.CreateElement(xmlTabeName);
   xmlElement.SetAttribute(tableTop[0], tableList[i][0]);
 
   for (int j = 0; j < tableTop.Length-1; j++)
   {
    XmlElement infoElement = xmll.CreateElement(tableTop[j + 1]);
    infoElement.InnerText = tableList[i][j + 1];
    xmlElement.AppendChild(infoElement);
   }
   Root.AppendChild(xmlElement);
  }
 
  xmll.AppendChild(Root);
  xmll.Save(Path);
 
 }
 
 void OnGUI()
 {
  if (GUI.Button(new Rect(200, 200, 500, 500), "创建XML表"))
  {
   CreateXMLTable();
   Debug.Log("创建成功: " + Path);
  }
  
 }
}

另外有需要云服务器可以了解下创新互联scvps.cn,海内外云服务器15元起步,三天无理由+7*72小时售后在线,公司持有idc许可证,提供“云服务器、裸金属服务器、高防服务器、香港服务器、美国服务器、虚拟主机、免备案服务器”等云主机租用服务以及企业上云的综合解决方案,具有“安全稳定、简单易用、服务可用性高、性价比高”等特点与优势,专为企业上云打造定制,能够满足用户丰富、多元化的应用场景需求。


标题名称:Unity读取Excel文件转换XML格式文件的方法-创新互联
文章URL:http://ybzwz.com/article/disgce.html