Excel导入数据(97--2003版本)的ExcelHelper
首先确定excel的版本为97~2003版本
其次创建一个帮助类——ExcelHelper
//单个sheet
public static DataTable AnalysisExcel(string fileName,string sheetName)
{
using(Stream stream=new FileStream(fileName,FileMode.Open))
{
HSSFWorkbook work=new HSSFWorkbook(stream);
int sheetCount=wook.Count;
ISheet spusheet=work.GetSheet("spu");//spu为sheet名称
DataTable sputable=new DataTable();
}
return new DataTable();
} //多个sheet
public static List<DataTable> AnalysisExcel(Stream fileStream,List<String> sheetNames)
{
HSSFWorkbook work=new HSSFWorkboox(fileStream);
int sheetCount=work.Count;
List<DataTable> tables=new List<DataTable>();
foreach(string sheetname in sheetNames)
{
tables.Add(GetDataTable(work,sheetName));
}
return tables;
} //获取到datatable
public static DataTale GetDataTable(HSSFWorkbook work,string sheetName)
{
ISheet sheet=work.GetSheet(sheetName);
DataTable dbTable=new DataTable();
int firstRowNum =sheet.FirstRowNum;
IRow titleRow=sheet.GetRow(firstRowNum);
List<ICell> titleCell=titleRow.Cells;
foreach(var item in titleCell)
{
string titleName=item.StringCellValue;
DataColumn col=new DataColumn(titleName);
dbTable.Columns.Add(col);
}
for(int i=;i<=sheet.LastRowNum;i++)
{
DataRow dbRow=dbTable.NewRow();
IRow row=sheet.GetRow(i);
if(row!=null)
{
for(int j=;j<titleCell.Count;j++)
{
ICell cell=row.GetCell(j);
dbRow[j]=cell==null?"":cell.ToString();
}
dbTable.Rows.Add(dbRow);
}
else
continue;
}
return dbTable;
}
引用方法如下:
Stream stream=Request.Files[].InputStream;
List<string> sheetNames=new List<string>();
sheetNames.Add("spu");
sheetNames.Add("sku");
List<DataTable> tables=ExcelHelper.AnalysisExcel(stream,sheetName);
DataTable spuTable=table[];
DataTable skuTable=table[];
............此处省略
Excel导入数据(97--2003版本)的ExcelHelper的更多相关文章
- Excel导入数据到Sql server 中出错:“文本被截断,或者一个或多个字符在目标代码页中没有匹配项”
从Excel导入数据到Sql server 时,由于表中的数据有的很长,导入时出现如下错误(如果数据不是很长,255内以内,则不会出现错误): 出错原因: SQL Server的导入导出为了确定数据表 ...
- C#实现Excel模板导出和从Excel导入数据
午休时间写了一个Demo关于Excel导入导出的简单练习 1.窗体 2.引用office命名空间 添加引用-程序集-扩展-Microsoft.Office.Interop.Excel 3.封装的Exc ...
- Open XML操作Excel导入数据
项目中发现使用OleDb(using System.Data.OleDb)相关对象处理Excel导入功能,不是很稳定经常出问题,需要把这个问题解决掉.项目组提出使用OpenXML来处理Excel的导入 ...
- 项目经验之:再来一章:excel导入数据 封装成最棒的不容易!!!
我见过很的系统,包括OA,ERP,CRM等,在常用的功能当中,从外部导入数据是最常用到的.因为很多客户需要以excel的形式提供数据,,这样的方式我们又如何做呢, 大家最常见的做法可能是这样的,在需要 ...
- excel导入 导出 兼容各个版本服务器不装EXCEL也可以
给出 demo源码: http://pan.baidu.com/s/1hqGMudY 提取码:pw4n首先要引用 NPOI.dll (可在网上下载!) //导入 public void OnSubmi ...
- Dynamics CRM EXCEL导入数据字段类型为选项集时的注意事项
在开始先展示下CRM的导入数据涉及选项集字段时的一个问题 下图是选项集字段的属性 下图是我要导入的excel中的列值,可以看出列明和字段名是一致的,而列值却不是选项集中已有的选项 在导入校验时,只要字 ...
- C# Excel导入数据
表 表的创建脚本 CREATE TABLE [dbo].[TB_PROJECTS_New1]( , ) NOT NULL, ) NULL, ) NULL, , ) NULL, , ) NULL, , ...
- 实现excel导入导出功能,excel导入数据到页面中,页面数据导出生成excel文件
今天接到项目中的一个功能,要实现excel的导入,导出功能.这个看起来思路比较清楚,但是做起了就遇到了不少问题. 不过核心的问题,大家也不会遇到了.每个项目前台页面,以及数据填充方式都不一样,不过大多 ...
- PHP Excel导入数据到MySQL数据库
数据导出已经有了,怎么能没有数据导入呢,同样使用TP5框架,首先需要下载phpexcel.zip,放到第三方类库目录vendor目录下,然后有一个页面可以让你选择要导入的Excel文件,然后点击导入按 ...
随机推荐
- 在Windows 7上安装MongoDB 2.6.7
sc.exe create MongoDB binPath= "C:\mongodb\bin\mongod.exe --service --config=\"C:\mongodb\ ...
- MySql 申明变量以及赋值
sql server中变量要先申明后赋值: 局部变量用一个@标识,全局变量用两个@(常用的全局变量一般都是已经定义好的): 申明局部变量语法:declare @变量名 数据类型:例如:declare ...
- Windows下Nginx的启动、停止等命令(转)
Windows下Nginx的启动.停止等命令 在Windows下使用Nginx,我们需要掌握一些基本的操作命令,比如:启动.停止Nginx服务,重新载入Nginx等,下面我就进行一些简单的介绍.1.启 ...
- springmvc笔记(基本配置,核心文件,路径,参数,文件上传,json整合)
首先导入jar包 大家注意一下我的springmvc,jackson,common-up的jar包版本.其他版本有可能出现不兼容. src文件: webroot目录: web.xml <?xml ...
- [SQL]动态sql语句基本语法
动态sql语句基本语法 :普通SQL语句可以用Exec执行 eg: Select * from tableName Exec('select * from tableName') Exec sp_ex ...
- CodeForces 604C 【思维水题】`
题意: 给你01字符串的长度再给你一个串. 然后你可以在这个串中选择一个起点和一个终点使得这个连续区间内所有的位取反. 求: 经过处理后最多会得到多少次01变换. 例如:0101是4次,0001是2次 ...
- iOS7 下去掉状态栏(全屏)
具体步骤如下: 1.在项目的-Info.plist文件中,添加Row: Key:View controller-based status bar appearance Value:NO 2.选择项目在 ...
- 黑马程序员_Java基本数据的自动拆装箱及享元设计模式视频学习笔记
------- android培训.java培训.期待与您交流! ---------- 装箱:把基本数据类型装成java类(被托管?). 拆箱:把java类拆成基本数据类型(取消托管? ...
- Goldengate常用命令
1.Goldengate的起停 启动goldengate a> 启动goldengate时最好先从target节点开始,然后是source节点.否则data pump进程可能会由于没有收到t ...
- 启用 CORS 来解决这个问题(ajax跨域请求)
<input type="file" name="btn_Upload" value="上传" id="btn_Upload ...