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);
  }

 }
}

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

(0)

相关推荐

  • ASP.NET(C#)读取Excel的文件内容

    .xls格式       Office2003及以下版本 .xlsx格式 Office2007 及以上版本 .csv格式       以逗号分隔的字符串文本(可以将上述两种文件类型另存为此格式) 读取前两种格式和读取后一种格式会用两种不同的方法. 下面看程序:页面前台: 复制代码 代码如下: <div>       <%-- 文件上传控件  用于将要读取的文件上传 并通过此控件获取文件的信息--%>      <asp:FileUpload ID="fileSele

  • C#使用Aspose.Cells控件读取Excel

    Aspose是一个很强大的控件,可以用来操作word,excel,ppt等文件,用这个控件来导入.导出数据非常方便.其中Aspose.Cells就是用来操作Excel的,功能有很多.我所用的是最基本的功能,读取Excel的数据并导入到Dataset或数据库中.读取Excel表格数据的代码如下: 首先要引入命名空间:using Aspose.Cells; 复制代码 代码如下: Workbook workbook = new Workbook(); workbook.Open("C:\\test.x

  • ADO.NET 读取EXCEL的实现代码((c#))

    // 连接字符串 复制代码 代码如下: // 连接字符串                     string xlsPath = Server.MapPath("~/app_data/somefile.xls"); // 绝对物理路径         string connStr = "Provider=Microsoft.Jet.OLEDB.4.0;" +                         "Extended Properties=Exc

  • C#读取Excel的三种方式以及比较分析

    (1)OleDB方式 优点:将Excel直接当做数据源处理,通过SQL直接读取内容,读取速度较快. 缺点:读取数据方式不够灵活,无法直接读取某一个单元格,只有将整个Sheet页读取出来后(结果为Datatable)再在Datatable中根据行列数来获取指定的值. 当Excel数据量很大时.会非常占用内存,当内存不够时会抛出内存溢出的异常. 读取代码如下: public DataTable GetExcelTableByOleDB(string strExcelPath, string tabl

  • C#读取Excel并转化成XML的方法

    本文实例讲述了C#读取Excel并转化成Xml的方法.分享给大家供大家参考.具体实现方法如下: 复制代码 代码如下: XmlDocument excelData = new XmlDocument(); DataSet excelTableDataSet = new DataSet(); StreamReader excelContent = new StreamReader(excelFilePath, System.Text.Encoding.Default); string stringC

  • c#利用Excel直接读取数据到DataGridView

    在winform里拖入一个datagridview控件,跟一个openfiledialog控件 复制代码 代码如下: using System;using System.Collections.Generic;using System.ComponentModel;using System.Data;using System.Drawing;using System.Linq;using System.Text;using Microsoft.Office.Core;using Excel=Mi

  • C#实现把txt文本数据快速读取到excel中

    今天预实现一功能,将txt中的数据转到excel表中,做为matlab的数据源.搜集一些c#操作excel的程序.步骤如下: 下载一个Microsoft.Office.Interop.Excel.dll   在项目中引用. 编写代码如下: string path = "c://date//xyu.txt"; StreamReader sr = new StreamReader(path); string strLine = sr.ReadLine(); int rowNum = 1;

  • C#利用Openxml读取Excel数据实例

    本文实例讲述了C#利用Openxml读取Excel数据的方法,分享给大家供大家参考.具体分析如下: 这里有些问题,如果当Cell 里面是 日期和浮点型的话,对应的Cell.DataType==Null,对应的时间会转换为一个浮点型,对于这块可以通过DateTime.FromOADate(double d)转换为时间. 可是缺点的地方就是,如果Cell.DataType ==NULL, 根本无法确认这个数据到底是 浮点型还是[被转换为了日期的浮点数].查阅了很多国外资料,的确国外博客有一部分都反映

  • C#创建、读取和修改Excel的方法

    本文实例讲述了C#创建.读取和修改Excel的方法.分享给大家供大家参考.具体如下: windows下我们可以通过 Jet OLE DB访问Excel,就行访问数据库一样 复制代码 代码如下: // Namespaces, Variables, and Constants using System; using System.Configuration; using System.Data; private OleDbDataAdapter da; private DataTable dt; p

  • C#窗体读取EXCEL并存入SQL数据库的方法

    本文实例讲述了C#窗体读取EXCEL并存入SQL数据库的方法.分享给大家供大家参考.具体实现方法如下: windows窗体上放了一个Textbox1,2个按钮button1和button2~按button1选择excel文件~按button2进行相关处理 复制代码 代码如下: private  void button1_click(object sendeer,EventArgs e) {  OpenFileDialog  openFiledialog1=new OpenFileDialog()

随机推荐