本文实例为大家分享了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);
}
}
}
您可能感兴趣的文章:ASP.NET(C#)读取Excel的文件内容C#读取Excel的三种方式以及比较分析c#利用Excel直接读取数据到DataGridViewC#使用Aspose.Cells控件读取ExcelC#利用Openxml读取Excel数据实例C#实现把txt文本数据快速读取到excel中ADO.NET 读取EXCEL的实现代码((c#))C#读取Excel并转化成XML的方法C#窗体读取EXCEL并存入SQL数据库的方法C#创建、读取和修改Excel的方法