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

 更新时间:2020年11月3日 15:20  点击:2037

本文实例为大家分享了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);
  }
  
 }
}

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

[!--infotagslink--]

相关文章

  • SpringBoot实现excel文件生成和下载

    这篇文章主要为大家详细介绍了SpringBoot实现excel文件生成和下载,文中示例代码介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们可以参考一下...2021-02-09
  • c#读取excel方法实例分析

    这篇文章主要介绍了c#读取excel方法,实例分析了C#读取excel文件的原理与相关技巧,需要的朋友可以参考下...2020-06-25
  • Python导入数值型Excel数据并生成矩阵操作

    这篇文章主要介绍了Python导入数值型Excel数据并生成矩阵操作,具有很好的参考价值,希望对大家有所帮助。一起跟随小编过来看看吧...2020-06-09
  • C# winform打开Excel文档的方法总结(必看篇)

    下面小编就为大家带来一篇C# winform打开Excel文档的方法总结(必看篇)。小编觉得挺不错的,现在就分享给大家,也给大家做个参考。一起跟随小编过来看看吧...2020-06-25
  • C# 导出Excel的6种简单方法实现

    C# 导出 Excel 的6种简单方法:数据表导出到 Excel,对象集合导出到 Excel,数据库导出到 Excel,微软网格控件导出到 Excel,数组导出到 Excel,CSV 导出到 Excel,你都会了吗?需要的朋友们下面随着小编来一起学习学习吧...2020-06-25
  • 解决Mybatis中mapper.xml文件update,delete及insert返回值问题

    这篇文章主要介绍了解决Mybatis中mapper.xml文件update,delete及insert返回值问题,具有很好的参考价值,希望对大家有所帮助。一起跟随小编过来看看吧...2020-11-23
  • C#实现Excel表数据导入Sql Server数据库中的方法

    这篇文章主要介绍了C#实现Excel表数据导入Sql Server数据库中的方法,结合实例形式详细分析了C#读取Excel表数据及导入Sql Server数据库的具体操作步骤与相关操作技巧,需要的朋友可以参考下...2020-06-25
  • Unity时间戳的使用方法

    这篇文章主要为大家详细介绍了Unity时间戳的使用方法,文中示例代码介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们可以参考一下...2020-06-25
  • C#从数据库读取数据到DataSet并保存到xml文件的方法

    这篇文章主要介绍了C#从数据库读取数据到DataSet并保存到xml文件的方法,涉及C#操作DataSet保存到XML文件的技巧,需要的朋友可以参考下...2020-06-25
  • JS跨浏览器解析XML应用过程详解

    这篇文章主要介绍了JS跨浏览器解析XML应用过程详解,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友可以参考下...2020-10-16
  • js操作XML文件的实现方法兼容IE与FireFox

    下面小编就为大家带来一篇js操作XML文件的实现方法兼容IE与FireFox。小编觉得挺不错的,现在就分享给大家,也给大家做个参考。一起跟随小编过来看看吧...2016-07-01
  • XML、HTML、CSS与JS的区别整理

    在BS中,xml,html,css和js我们都学过,起初分不清这四者的区别和联系,随着知识的增长,有了一些体会,下面通过本文给大家简单介绍 XML、HTML、CSS与JS的区别,需要的朋友参考下...2016-02-21
  • C#实现将数据导出到word或者Excel中的方法

    这篇文章主要介绍了C#实现将数据导出到word或者Excel中的方法,涉及C#操作word及Excel格式文件的方法,具有一定参考借鉴价值,需要的朋友可以参考下...2020-06-25
  • C#使用Ado.Net更新和添加数据到Excel表格的方法

    这篇文章主要介绍了C#使用Ado.Net更新和添加数据到Excel表格的方法,较为详细的分析了OLEDB的原理与使用技巧,可实现较为方便的操作Excel数据,需要的朋友可以参考下...2020-06-25
  • Xml中使用foreach遍历对象实现代码

    这篇文章主要介绍了Xml中使用foreach遍历对象实现代码,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友可以参考下...2020-12-04
  • C#使用Aspose.Cells创建和读取Excel文件

    这篇文章主要为大家详细介绍了C#使用Aspose.Cells创建和读取Excel文件,具有一定的参考价值,感兴趣的小伙伴们可以参考一下...2020-06-25
  • C#使用oledb导出数据到excel的方法

    这篇文章主要介绍了C#使用oledb导出数据到excel的方法,结合实例形式分析了C#操作oledb导出数据的相关技巧与注意事项,需要的朋友可以参考下...2020-06-25
  • Unity中 ShaderGraph 实现旋涡传送门效果入门级教程(推荐)

    通过Twirl 旋转节点对Gradient Noise 梯度噪声节点进行操作,就可得到一个旋转的旋涡效果。具体实现代码跟随小编一起通过本文学习下吧...2021-07-11
  • C#操作excel打印的示例

    这篇文章主要介绍了C#操作excel打印的示例,帮助大家利用c#打印表格,提高办公效率,感兴趣的朋友可以了解下...2020-12-08
  • Unity延时执行的多种方法小结

    本文主要介绍了4种延时执行的方法,主要包括Update计时器,Invoke,协程,DoTween,具有一定的参考价值,感兴趣的小伙伴们可以参考一下...2021-07-07