EXCLE 导入 或 导出
首先要引用 NPOI.dll (可在网上下载!)
//导入
public void OnSubmit()
{
string path = Server.MapPath("/upload/201410/27/201410271103461051.xls");
FileStream fs = File.Open(path, FileMode.Open);
System.Data.DataTable dt = ConvertToDataTable(fs);
foreach (DataRow row in dt.Rows)
{
if (row["Mobile1"] != null)
{
Response.Write(row["Mobile1"].ToString() + " " + row["Mobile2"].ToString() + "
");
}
}
Response.End();
}
//excel转DataTable
public static DataTable ConvertToDataTable(System.IO.Stream excelFileStream)
{
HSSFWorkbook HSSFWorkbook = new HSSFWorkbook(excelFileStream);
DataTable dt = new DataTable();
HSSFSheet sheet = (HSSFSheet)HSSFWorkbook.GetSheetAt(0);
System.Collections.IEnumerator rows = sheet.GetRowEnumerator();
int n = 0;
while (rows.MoveNext())
{
HSSFRow row = (HSSFRow)rows.Current;
if (n == 0)
{
for (int i = 0; i < row.LastCellNum; i++)
{
HSSFCell cell = (HSSFCell)row.GetCell(i);
if (cell == null)
continue;
DataColumn column = new DataColumn(cell.StringCellValue);
dt.Columns.Add(column);
}
}
else
{
DataRow dtRow = dt.NewRow();
string rValue = "";
for (int i = 0, j = 0; i < row.LastCellNum; i++)
{
HSSFCell cell = (HSSFCell)row.GetCell(i);
if (cell == null)
{
dtRow[i] = "";
}
else
{
dtRow[j] = cell.ToString();
rValue = cell.ToString();
j++;
}
}
if (string.IsNullOrEmpty(rValue.Trim()))
break;
dt.Rows.Add(dtRow);
}
n++;
}
return dt;
}
//导出
///
/// 将明细表导出到Excel
///
///
要导入到Excel中的中文表头的Sql,将需要的字段通过sql as成中文名
///
/// 1 成功 -1失败
protected int ExportToExcel(string sql, HttpResponse response)
{
DataTable dt = CommOtherBLL.ExportToExcel(sql); //要导出的表
if (dt != null && dt.Rows.Count > 0)
{
StringBuilder strContent = new StringBuilder();
for (int i = 0; i < dt.Columns.Count; i++)
strContent.Append(dt.Columns[i] + "\t");
strContent.Append("\n");
for (int i = 0; i < dt.Rows.Count; i++)
{
for (int y = 0; y < dt.Columns.Count; y++)
strContent.Append(dt.Rows[i][y] + "\t");
strContent.Append("\n");
}
response.AddHeader("Content-Disposition", "attachment; filename=" + System.Web.HttpUtility.UrlEncode("excel", System.Text.Encoding.UTF8) + ".xls");
response.ContentType = "application/ms-excel";
response.ContentEncoding = System.Text.Encoding.GetEncoding("GB2312");
response.Write(strContent.ToString());
response.End();
return 1;
}
else
return -1;
}
EXCLE 导入 或 导出的更多相关文章
- Springboot Excle导入导出
Springboot Excle导入导出 导入操作:Excle批量导入 导出操作:下载模版 开发笔记 pom.xml <!-- Excle相关jar --> <dependency& ...
- java中使用POI+excel 实现数据的批量导入和导出
java web中使用POI实现excel文件的导入和导出 文件导出 //导入excle表 public String exportXls() throws IOException{ //1.查询所有 ...
- C# Excel导入、导出【源码下载】
本篇主要介绍C#的Excel导入.导出. 目录 1. 介绍:描述第三方类库NPOI以及Excel结构 2. Excel导入:介绍C#如何调用NPOI进行Excel导入,包含:流程图.NOPI以及C#代 ...
- ASP.NET MVC5+EF6+EasyUI 后台管理系统(63)-Excel导入和导出-自定义表模导入
系列目录 前言 上一节使用了LinqToExcel和CloseXML对Excel表进行导入和导出的简单操作,大家可以跳转到上一节查看: ASP.NET MVC5+EF6+EasyUI 后台管理系统(6 ...
- Hawk 5.1 数据导入和导出
除了一般的数据库导入导出,Hawk还支持从文件导入和导出,支持的文件类型包括: Excel CSV(逗号分割文本文件) TXT (制表符分割文本文件) Json xml Excel 目前来看,Exce ...
- ASP.NET MVC5+EF6+EasyUI 后台管理系统(63)-Excel导入和导出
系列目录 昨天文章太过仓促没有补充导出的示例源码,在者当时弄到到很晚没时间做出导出功能,对阅读理解造成影响,现补充一份示例源码,顺便补充导出的功能说明,望理解 示例代码下载 https://yun ...
- 萌新笔记——C++里创建 Trie字典树(中文词典)(二)(插入、查找、导入、导出)
萌新做词典第二篇,做得不好,还请指正,谢谢大佬! 做好了插入与遍历功能之后,我发现最基本的查找功能没有实现,同时还希望能够把内存的数据存入文件保存下来,并可以从文件中导入词典.此外,数据的路径是存在配 ...
- [转]Java中导入、导出Excel
原文地址:http://blog.csdn.net/jerehedu/article/details/45195359 一.介绍 当前B/S模式已成为应用开发的主流,而在企业办公系统中,常常有客户这样 ...
- Oracle 文件的导入与导出
说明:本机使用的是32位oracle,使用的方法是plsql导入与导出 1.导出数据步骤. 1)登陆上plsql后在工具里选择导出用户对象,选择上所有的表在选择保存的路径.点击导出就可以了. 2)上边 ...
随机推荐
- 软件测试之实际工作工作方式001--log4
软件测试之实际工作工作方式001--log4 Dotest软件测试-董浩整理 领导安排任务后: 1)首先要确认理解:是指的某工作吗?具体有什么要求吗?时间截止到什么时候? 解析: a.万一 ...
- Mask_RCNN学习记录(matterport版本)
资源链接 Mask R-CNN论文 matterport版本的GitHub 基于Keras和Tensorflow GitHub上还有Facebook的官方实现版本:Detectron maskrcnn ...
- IAR 关于C++几个内存的使用及释放的问题
由于之前工作中常常遇到,但是遇到的时候工作总是要求比较紧急,没有那么多时间细细寻找有效的解决办法.现在了解到了一些,记录一些. 1. string vector 都是增量在堆里,所以只要有增量都是在堆 ...
- find 命令局部小结之 xtime
大家在使用find命令的时候往往会使用它的 -name 或者 -xtime,在这里就说下他的xtime. find / -mtime +7 .find / -mtime -7.find / -mti ...
- 在JavaScript中,如何判断数组是数组?
如果你没有注意过这个问题,那么这个标题应该会让你感到困惑,判断数据类型这么基础的问题能有什么坑呢? 少年,你不能太天真了,我们朝夕面对的这门语言,可是JavaScript呀,任何你觉得已经习以为常的东 ...
- java学习笔记--从c/c++到java转变
final修饰符1)final变量final表示“最后的,最终的”含义,变量一旦赋值后,不能被重新赋值.被final修饰的实例变量必须显示指定初始值.final修饰符通常和static修饰符一起来创建 ...
- 【easy】141. Linked List Cycle
非常简单的题:判断链表有没有环(用快慢指针) /** * Definition for singly-linked list. * struct ListNode { * int val; * Lis ...
- h1-h3使用
一个页面也就只允许出现一个h1标签.内容页文章的标题,是seo中使用最多的地方,基本的文章页面标题都是使用h1标签.一.<h1>用来修饰网页的主标题,一般是网页的标题 ,文章标题,< ...
- MUI底部导航切换子页面
1.登陆页面进入之后,进入到main页面,main页面只有一个底部导航,然后引入子页面进行渲染. <nav class="mui-bar mui-bar-tab" id=&q ...
- .net mvc的“从客户端中检测到有潜在危险的 Request.Form 值”问题解决
第一种解决方案 : 在控制器调用的方法上添加[ValidateInput(false)] 第二种解决方案 : 在对应的asp.net web页面上加上ValidateRequest="fal ...