Unity读取Excel文件转换XML格式文件

 更新时间:2020年06月21日 12:48:16   作者:于子潇  
这篇文章主要为大家详细介绍了Unity读取Excel文件转换XML格式文件,文中示例代码介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们可以参考一下

本文实例为大家分享了Unity读取Excel文件转换XML格式文件的具体代码,供大家参考,具体内容如下

此方法用到excel.dll

下载连接 点击打开链接

using System.Collections.Generic;
using UnityEngine;
using System.IO;
using System.Xml;
using Excel;
using System.Data;
 
/// <summary>
/// 创建XML表
/// </summary>
public class CreateXML : MonoBehaviour
{
 /// <summary>
 /// 表头
 /// </summary>
 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<string[]> tableList=new List<string[]>();
 
 
 private void Awake()
 {
  //设置路径
  Path = Application.streamingAssetsPath + "/XMLTable/" + xmlName;
 
  //读取Excel
  ReadExcel(ExcelPathName);
 }
 
 
 /// <summary>
 /// 读Excel
 /// </summary>
 /// <param name="ExcelPath"></param>
 /// <returns></returns>
 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);
  }
 }
 
 /// <summary>
 /// 创建表格
 /// </summary>
 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);
  }
  
 }
}

以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持脚本之家。

您可能感兴趣的文章:

相关文章

  • C#中的多线程小试牛刀

    C#中的多线程小试牛刀

    这篇文章主要给大家介绍了关于C#中多线程的相关资料,文中通过示例代码介绍的非常详细,对大家学习或者使用C#具有一定的参考学习价值,需要的朋友们下面来一起学习学习吧
    2019-05-05
  • 泛型编程去掉字段重复数据的方法

    泛型编程去掉字段重复数据的方法

    这篇文章主要介绍了泛型去掉字段重复数据的方法,大家参考使用吧
    2014-01-01
  • C#集合之栈的用法

    C#集合之栈的用法

    这篇文章介绍了C#集合之栈的用法,文中通过示例代码介绍的非常详细。对大家的学习或工作具有一定的参考借鉴价值,需要的朋友可以参考下
    2022-04-04
  • C#实现定义一套中间SQL可以跨库执行的SQL语句(案例详解)

    C#实现定义一套中间SQL可以跨库执行的SQL语句(案例详解)

    这篇文章主要介绍了C#实现定义一套中间SQL可以跨库执行的SQL语句,主要包括hisql查询样例、group by查询、链式查询及hisql语句和链式查询混用的sql语句,本文给大家介绍的非常详细,对大家的学习或工作具有一定的参考借鉴价值,需要的朋友可以参考下
    2022-07-07
  • C#实现从多列的DataTable里取需要的几列

    C#实现从多列的DataTable里取需要的几列

    这篇文章主要介绍了C#实现从多列的DataTable里取需要的几列,涉及C#针对DataTable操作的相关技巧,需要的朋友可以参考下
    2016-03-03
  • C#中数据类型的转换介绍

    C#中数据类型的转换介绍

    大家好,本篇文章主要讲的是C#中数据类型的转换介绍,感兴趣的同学赶快来看一看吧,对你有帮助的话记得收藏一下,方便下次浏览
    2022-01-01
  • Windows系统中C#读写ini配置文件的程序代码示例分享

    Windows系统中C#读写ini配置文件的程序代码示例分享

    这篇文章主要介绍了C#读写ini配置文件的程序代码示例分享,在Windows下可以利用Win32的API函数轻松实现,需要的朋友可以参考下
    2016-04-04
  • c#实现简单控制台udp异步通信程序示例

    c#实现简单控制台udp异步通信程序示例

    这篇文章主要介绍了c#实现简单控制台udp异步通信程序示例,需要的朋友可以参考下
    2014-04-04
  • c#获取两个特定字符之间的内容并输出的方法

    c#获取两个特定字符之间的内容并输出的方法

    今天小编就为大家分享一篇c#获取两个特定字符之间的内容并输出的方法,具有很好的参考价值,希望对大家有所帮助。一起跟随小编过来看看吧
    2018-12-12
  • C#生成唯一不重复订单号

    C#生成唯一不重复订单号

    本文给大家介绍的是使用C#生成唯一不重复订单号的方法,主要用到了lock锁,有需要的小伙伴可以参考下。
    2015-07-07

最新评论