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. BZOJ 1800

    1800: [Ahoi2009]fly 飞行棋 Time Limit: 10 Sec  Memory Limit: 64 MBSubmit: 1622  Solved: 1293[Submit][St ...

  2. 使用Redis实现高并发分布式序列号生成服务

    序列号的构成 为建立良好的数据治理方案,作数据掌握.分析.统计.商业智能等用途,业务数据的编码制定通常都会遵循一定的规则,一般来讲,都会有自己的编码规则和自增序列构成.比如我们常见的身份证号.银行卡号 ...

  3. (十四)基于GTID的主从复制

    (1)GTID主从复制 1)环境介绍 /etc/redhat-release CentOS Linux release 7.3.1611 (Core) MySQL版本:5.7 mysql> se ...

  4. MySQL 一般模糊查询的几种用法

    1.%:表示零个或多个字符.在某些情况下需要中文查询,一般用两个%来查询,即%%: select * from user where name like %五%; -->表示:查询user表中的 ...

  5. python os用法精简版

    import os print(os.getcwd()) #返回当前路径,无参数 print(os.listdir('E:\zsfile')) #该路径下所有文件名 os.remove('E:\zsf ...

  6. HDU 1236 排名(结构体+排序)

    今天的上机考试虽然有实时的Ranklist,但上面的排名只是根据完成的题数排序,没有考虑 每题的分值,所以并不是最后的排名.给定录取分数线,请你写程序找出最后通过分数线的 考生,并将他们的成绩按降序打 ...

  7. 洛谷P1095 绝地武士的逃离

    好吧原题是守望者的逃离,我强行改了一波题面,因为信仰=-=(? May the force be with us. 绝地跑步速度为17m/s,但无法逃离荒岛.绝地的原力恢复速度为4点/s,只有处在原地 ...

  8. 洛谷—— P1775 古代人的难题_NOI导刊2010提高(02)

    P1775 古代人的难题_NOI导刊2010提高(02) 题目描述 门打开了,里面果然是个很大的厅堂.但可惜厅堂内除了中央的一张羊皮纸和一支精致的石笔,周围几具骷髅外什么也没有.难道这就是王室的遗产? ...

  9. RabbitMQ (六) 订阅者模式之路由模式 ( direct )

    路由模式下,生产者发送消息时需要指定一个路由键(routingKey),交换机只会把消息转发给包含该路由键的队列 这里,我们改变一下声明交换机的方式. 我们通过管理后台添加一个交换机. 添加后,生产者 ...

  10. sdoi2018酱油鸡

    ruand1滚粗啦,然后过来写游记 四月是你の省选... day -1 老师突然告诉我们说 day2 回来参加月考,心态爆炸. day0 坐车,颓,和队爷zpd补了b站翻唱2017top100,晚上收 ...