Excel 读取
2024-10-21 12:57:25
using UnityEngine;
using System.Collections;
using NPOI;
using Ionic.Zip;
using System.IO;
using NPOI.HSSF.UserModel;
using NPOI.SS.UserModel;
using System.Text; public class Test : MonoBehaviour
{
void Start ()
{
ExportXls();
}
public static void ExportXls()
{
StringBuilder sbr = new StringBuilder();
using (FileStream fs = File.OpenRead(@"D:\UnityProject\ExcelTest\Assets\Resources\Book1.xls")) //打开myxls.xls文件
{
HSSFWorkbook wk = new HSSFWorkbook(fs); //把xls文件中的数据写入wk中
for (int i = ; i < wk.NumberOfSheets; i++) //NumberOfSheets是myxls.xls中总共的表数
{
ISheet sheet = wk.GetSheetAt(i); //读取当前表数据
for (int j = ; j <= sheet.LastRowNum; j++) //LastRowNum 是当前表的总行数
{
IRow row = sheet.GetRow(j); //读取当前行数据
if (row != null)
{ sbr.Append("-------------------------------------\r\n"); //读取行与行之间的提示界限
for (int k = ; k <= row.LastCellNum; k++) //LastCellNum 是当前行的总列数
{
ICell cell = row.GetCell(k); //当前表格 if (cell != null)
{
cell.SetCellValue("");
//Debug.Log(cell.ToString());
//sbr.Append(cell.ToString()); //获取表格中的数据并转换为字符串类型
}
}
}
}
} //using (FileStream fsWrite = File.OpenWrite(@"D:\UnityProject\ExcelTest\Assets\Resources\Book1.xls")) //打开一个xls文件,如果没有则自行创建,如果存在myxls.xls文件则在创建是不要打开该文件!
//{
// wk.Write(fs); //向打开的这个xls文件中写入mySheet表并保存。
// Debug.Log("写入完成");
//} using (StreamWriter wr = new StreamWriter(new FileStream(@"D:\UnityProject\ExcelTest\Assets\Resources\Book2.xls", FileMode.CreateNew))) //把读取xls文件的数据写入myText.txt文件中
{
wr.Write(wk);
wr.Flush();
Debug.Log("写入");
}
} ////sbr.ToString(); }
}
NPOI.dll
JsonFx.Json.dll
System.Data.dll
using UnityEngine;
using System.Collections;
using System;
using System.Data;
using System.Data.Odbc;
using System.Data.OleDb;
using System.Collections.Generic;
using JsonFx.Json;
using System.IO; /// <summary>
/// 获取Excel数据
/// </summary>
public class GetExcelData : MonoBehaviour
{
public GameDataManager m_GameDataManager;
public List<Achievement> m_PlayerDatas;
public Achievement m_PlayerData;
DataTable dtMyData = new DataTable("MyData");
string str = "";
string filepath; // Use this for initialization
void Start()
{
#if UNITY_STANDALONE_WIN || UNITY_EDITOR
filepath = Application.dataPath + "/" + "AchievementData20140410.xls"; #elif UNITY_IPHONE
filepath = Application.dataPath +"/Raw"+ "AchievementData20140410.xls";
#elif UNITY_ANDROID //安卓
filepath ="jar:file://" + Application.dataPath + "!/assets/"+"AchievementData20140410.xls";
#endif
//////////////
ReadXLS(filepath);
} void ReadXLS(string filetoread)
{
string con = "Driver={Microsoft Excel Driver (*.xls)}; DriverId=790; Dbq=" + filetoread + ";";
Debug.Log(con);
string yourQuery = "SELECT * FROM [Sheet1$]";
OdbcConnection oCon = new OdbcConnection(con);
OdbcCommand oCmd = new OdbcCommand(yourQuery, oCon);
oCon.Open();
OdbcDataReader rData = oCmd.ExecuteReader();
dtMyData.Load(rData);
rData.Close();
oCon.Close(); if (dtMyData.Rows.Count > )
{
m_PlayerDatas = new List<Achievement>();
Achievement achievement = null; Debug.Log("列数" + dtMyData.Columns.Count + "行数:" + dtMyData.Rows.Count); for (int i = ; i < dtMyData.Rows.Count; i++)
{
string cjName = dtMyData.Rows[i][dtMyData.Columns[].ColumnName].ToString();
string jl = dtMyData.Rows[i][dtMyData.Columns[].ColumnName].ToString();
string level = dtMyData.Rows[i][dtMyData.Columns[].ColumnName].ToString();
string cjType = dtMyData.Rows[i][dtMyData.Columns[].ColumnName].ToString();
string mbCount = dtMyData.Rows[i][dtMyData.Columns[].ColumnName].ToString(); achievement = new Achievement();
achievement.m_Key = "BLDM";
achievement.m_AchievementName = cjName;
achievement.m_Level = int.Parse(level);
achievement.m_Reward = int.Parse(jl);
achievement.m_AchievementType = (AchievementType)int.Parse(cjType);
achievement.m_CurrentCount = ;
achievement.m_TargetCount = int.Parse(mbCount); ;
achievement.m_IsOk = ;
achievement.m_IsReceive = ;
achievement.m_Markup = i+;
m_PlayerDatas.Add(achievement); //Debug.Log(" : " + cj + " 奖励:" + dtMyData.Rows[i][dtMyData.Columns[1].ColumnName].ToString() + " 列数 : " + dtMyData.Rows[i][dtMyData.Columns[2].ColumnName].ToString());
}
m_GameDataManager.gameDatas = m_PlayerDatas;
m_GameDataManager.Save(); string json = JsonWriter.Serialize(m_PlayerDatas);
FileUtility.CreateFile(json); }
}
}
最新文章
- Windows Phone自带的语音识别
- SqlBulkCopy大批量数据插入到sql表中
- Heritrix源码分析(十) Heritrix中的Http Status Code(Http状态码)(转)
- HDU 4746 Mophues 莫比乌斯反演
- mysql 批量插入优化之rewriteBatchedStatements
- android代码混淆笔记
- OpenCV meanshift 图像分割代码
- 看完python这段爬虫代码,java流泪了c#沉默了
- UTC,BJT时间转换-python
- *&;p理解
- Node.js api接口和SQL数据库关联
- 第十三节,使用带有全局平均池化层的CNN对CIFAR10数据集分类
- Oracle Database 11g : SQL 基础
- python---自己实现二分法列表查找
- oracle查看被锁的表和解锁
- Eclipse运行时发生An internal error occurred during:“**************” 的解决办法
- 启用yarn日志聚集功能
- Codeforces Beta Round #95 (Div. 2) C. The World is a Theatre 组合数学
- 【转】每天一个linux命令(41):ps命令
- openal 基础知识2