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

Excel 读取的更多相关文章

  1. java的poi技术下载Excel模板上传Excel读取Excel中内容(SSM框架)

    使用到的jar包 JSP: client.jsp <%@ page language="java" contentType="text/html; charset= ...

  2. excel读取 工具类

    package cn.yongche.utils; import java.io.File; import java.io.FileInputStream; import java.io.IOExce ...

  3. NPOI 2.0 Excel读取显示

    NPOI 2.0 Excel读取显示   最近接到需求,需要把excel表格里的数据原样展示到web页面,主要是满足随意跨行跨列. 之前用过一点NPOI,不过接触的不太多,趁这次机会再熟悉一下.由于操 ...

  4. Pandas之Dateframe 实现Excel读取与写入

    目的:有时需对数据进行到出到Excel,直观的给别人参阅,或从Excel中读取数据进行操作和分析依赖库 pandas 可简单的读出和写入 1,根据Excel读取( 需安装xlrd库) import n ...

  5. EPPlus实战篇——Excel读取

    .net core 项目 可以从excel读取任何类型(T)的数据,只要T中的field的[Display(Name = "1233")]中的name==excel column ...

  6. php excel 读取日期问题

    在 php excel 读取 xls 格式的文件时,xls 上面显示的是正常的日期格式 但是读取出来的话,就会是一个万位整形数据,这显然不是我们想要的日期 读取出来的结果: 41807 $t = 41 ...

  7. 利用poi包装一个简单的Excel读取器.一(适配一个Reader并提供readLine方法)

    通常,读文本我们会使用BufferedReader,它装饰或者说管理了InputStreamReader,同时提供readLine()简化了我们对文本行的读取.就像从流水线上获取产品一样,每当取完一件 ...

  8. C#连接Excel读取与写入数据库SQL ( 上 )

    第一次写C#与sql的东西,主要任务是从Excel读取数据,再存到SQL server中. 先上读取Excel文件的code如下. public bool GetFiles(string equipN ...

  9. Excel 读取写入数据库

    // Excel 读取写入数据库 // 3.8版本的poi  4.0 可以不用写  parseCell  这个方法,可以直接赋值 STRING 类型 import org.apache.poi.hss ...

  10. excel读取

    一.jar包 二.工具类 package excel; import java.io.FileInputStream; import java.io.FileNotFoundException; im ...

随机推荐

  1. hdu5076

    好题,首先观察可得w[i][j]选择只有可能两种,一种比阀值大,一种比阀值小 比阀值大就一定选满足条件最大的w,比阀值小同样一定选满足条件最大的w 那么一个最小割模型就呼之欲出了,注意w可能是负数那么 ...

  2. HDU 6336.Problem E. Matrix from Arrays-子矩阵求和+规律+二维前缀和 (2018 Multi-University Training Contest 4 1005)

    6336.Problem E. Matrix from Arrays 不想解释了,直接官方题解: 队友写了博客,我是水的他的代码 ------>HDU 6336 子矩阵求和 至于为什么是4倍的, ...

  3. Dart类

    Dart中没有访问控制符,无论类还是方法默认都是public 1.构造函数 构造函数可以没有方法体,并且this可以直接在传参时直接对实例赋值 Bicycle(this.cadence, this.s ...

  4. 集训day15 t1 poj3728

    [问题描述] 有一颗n个节点的树 每个节点上都有许多奸商在卖东西,第i个奸商的理想价格为vi,即他会以vi的价格购买或卖出一件东西 有m个人希望从树上的某个点走到另一个点,问你在只进行一次买卖(每次仅 ...

  5. RID枚举工具RidEnum

    RID枚举工具RidEnum   RID(Relative ID)是域RID主机为域内用户.组或者计算机对象分配的标识.RID和域的SID就构成该对象的SID.RidEnum是一个RID循环攻击工具. ...

  6. 【单调队列】【动态规划】bzoj3831 [Poi2014]Little Bird

    f(i)=min{f(j)+(D(j)<=D(i))} (max(1,i-k)<=j<=i) 有两个变量,很难用单调队列,但是(引用): 如果fi<fj,i一定比j优秀.因为如 ...

  7. 【二分答案】【哈希表】【字符串哈希】bzoj2946 [Poi2000]公共串

    二分答案,然后搞出hash值扔到哈希表里.期望复杂度O(n*log(n)). <法一>next数组版哈希表 #include<cstdio> #include<cstri ...

  8. lua 脚本之高级篇 (面向对象的完全支持),有性能问题。

    ---------------------------------------------------------- --面向对象核心库 ------------------------------- ...

  9. 使用history命令查看作业的整体执行情况

    1)通过使用history命令,我们可以深入到一个Job的任务级层面查看执行最快的任务,以及执行最慢的任务,以及其他的有用信息.命令如下: hadoop job -history /output “/ ...

  10. 使用Maven下载jar包

    有些开源项目不直接提供jar包的下载,而是建议使用Maven下载,以开源库hipster(https://github.com/citiususc/hipster,http://www.hipster ...