excel 导入 与 导出
Excel导入
public ActionResult Excel(HttpPostedFileBase file)
{
HttpPostedFileBase files = file;//接收客户端传递过来的数据.
try
{
if (files == null)
{
return Content("请选择上传的Excel文件");
}
else
{
file.SaveAs(Server.MapPath("~/UploadFile/Excel/" + file.FileName));
//对文件的格式判断,此处省略
AltasEntities db = new AltasEntities();//EF上下文对象
Stream inputStream = files.InputStream;
IWorkbook workbook;
string fileExt = Path.GetExtension(files.FileName);
if (fileExt == ".xls")
{
workbook = new HSSFWorkbook(inputStream);
}
else if (fileExt == ".xlsx")
{
workbook = new XSSFWorkbook(inputStream);
}
else
{
return null;
}
NPOI.SS.UserModel.ISheet sheet = workbook.GetSheetAt(0);
int rowCount = sheet.LastRowNum + 1;
for (int i = (sheet.FirstRowNum + 1); i <= rowCount - 1; i++)
{
IRow row = sheet.GetRow(i);
Equiemints model = new Equiemints();
if (row != null)
{
if (row.GetCell(0) != null)
{
model.EquiemintId = GetCellValue(row.GetCell(0)).ToUpper();
}
if (row.GetCell(1) != null)
{
model.Company = GetCellValue(row.GetCell(1));
}
if (row.GetCell(2) != null)
{
model.ModelsType = GetCellValue(row.GetCell(2));
}
if (row.GetCell(3) != null)
{
model.OpenCreatetime = DateTime.Parse(GetCellValue(row.GetCell(3)));
}
if (row.GetCell(4) != null)
{
model.ZBType = GetCellValue(row.GetCell(4));
}
if (row.GetCell(5) != null)
{
model.ZBEndCreatetime = DateTime.Parse(GetCellValue(row.GetCell(5)));
//model.SalesName = GetCellValue(row.GetCell(5));
}
if (row.GetCell(6) != null)
{
model.a1 = GetCellValue(row.GetCell(6));
}
if (row.GetCell(7) != null)
{
model.a2 = GetCellValue(row.GetCell(7));
}
if (row.GetCell(8) != null)
{
model.a3 = GetCellValue(row.GetCell(8));
}
if (row.GetCell(9) != null)
{
model.a4 = GetCellValue(row.GetCell(9));
}
if (row.GetCell(10) != null)
{
model.a5 = GetCellValue(row.GetCell(10));
}
}
db.Equiemints.Add(model);
}
db.SaveChanges();
return Content("<script>alert('导入成功!',location.href='/Equiemints/Index');</script>");
}
}
catch (Exception)
{
return Content("<script>alert('导入失败!');</script>");
}
}
/// <summary>
/// 根据Excel列类型获取列的值
/// </summary>
/// <param name="cell">Excel列</param>
/// <returns></returns>
private static string GetCellValue(ICell cell)
{
if (cell == null)
return string.Empty;
switch (cell.CellType)
{
case CellType.Blank:
return string.Empty;
case CellType.Boolean:
return cell.BooleanCellValue.ToString();
case CellType.Error:
return cell.ErrorCellValue.ToString();
case CellType.Numeric:
case CellType.Unknown:
default:
return cell.ToString();
case CellType.String:
return cell.StringCellValue;
case CellType.Formula:
try
{
HSSFFormulaEvaluator e = new HSSFFormulaEvaluator(cell.Sheet.Workbook);
e.EvaluateInCell(cell);
return cell.ToString();
}
catch
{
return cell.NumericCellValue.ToString();
}
}
}
Excel导出
public ActionResult DcExcel(List<int> id)
{
var db = new AltasEntities();
if (id == null)
{
id = db.Equiemints.Select(s => s.Id).ToList();
}
string filename = DateTime.Now.ToString("yyyyMMddHHmmss") + ".csv";
string path = Server.MapPath("/UploadFile/" + filename);
FileInfo fi = new FileInfo(path);
using (StreamWriter sw = fi.CreateText())
{
sw.WriteLine("设备序号,所属公司,机型,开始时间,质保类型,结束时间,服务销售,是否绑定,字段1,字段2,字段3");
foreach (int i in id)
{
//找到要导出的数据
var saa = db.Equiemints.Find(i);
if (saa.a1==null)
{
saa.a1 = "无";
}
if (saa.a2 == null)
{
saa.a2 = "无";
}
if (saa.a3 == null)
{
saa.a3 = "无";
}
sw.WriteLine(
saa.EquiemintId.ToString()
+ "," + saa.Company.ToString()
+ "," + saa.ModelsType.ToString()
+ "," + saa.OpenCreatetime.ToString()
+ "," + saa.ZBType.ToString()
+ "," + saa.ZBEndCreatetime.ToString()
+ "," + saa.uname.ToString()
+ "," + saa.bangname.ToString()
+ "," + saa.a1.ToString()
+ "," + saa.a2.ToString()
+ "," + saa.a3.ToString()
);
}
sw.Close();
}
var name = Path.GetFileName(path);
return File(path, "application/x-zip-compressed", name);
}
excel 导入 与 导出的更多相关文章
- 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 ...
- C# Excel导入、导出
本篇主要介绍C#的Excel导入.导出. 目录 1. 介绍:描述第三方类库NPOI以及Excel结构 2. Excel导入:介绍C#如何调用NPOI进行Excel导入,包含:流程图.NOPI以及C#代 ...
- JXLS (Excel导入、导出工具使用)
JXLS (Excel导入.导出工具使用) 1:简介: jxls是一个简单的.轻量级的excel导出库,使用特定的标记在excel模板文件中来定义输出格式和布局.java中成熟的excel导出工具有p ...
- ASP.NET MVC5+EF6+EasyUI 后台管理系统(63)-Excel导入和导出
系列目录 昨天文章太过仓促没有补充导出的示例源码,在者当时弄到到很晚没时间做出导出功能,对阅读理解造成影响,现补充一份示例源码,顺便补充导出的功能说明,望理解 示例代码下载 https://yun ...
- winform之excel导入和导出
引用命名空间 using Microsoft.Office.Interop.Excel;DataGridView 导出到Excel public static void SaveAs(DataGr ...
- ASP.NET MVC5+EF6+EasyUI 后台管理系统(87)-MVC Excel导入和导出
本文示例代码下载: 链接:http://pan.baidu.com/s/1jHBdgCA 密码:hzh7 ps:Vs数据库脚本在解压目录下,修改web.config数据库链接,示例代码包含:导入,导出 ...
- ASP.NET MVC5+EF6+EasyUI 后台管理系统(88)-Excel导入和导出-自定义表模导出
前言 之前说了导入和导出,也提供了自定义的表模的导入,可见LinqToExcel可以做的事情不仅仅如此 这次我们来演示比较复杂的导出Excel,导出复杂的Excel与导入复杂的Excel原理基本是一样 ...
- c# excel 导入 与 导出(可直接用)
c#操作excel方式很多 采用OleDB读取EXCEL文件: 引用的com组件:Microsoft.Office.Interop.Excel.dll 读取EXCEL文件 将EXCEL文件转化成C ...
随机推荐
- poj1183 反正切函数的应用(水)
这一题主要是推导过程+注意一下范围. // 由公式4你可以得到: arctan(/a)=arctan[(/b+/c)/(-/b*c)] =>b*c-=a(b+c); 令 b=a+m,c=a+n; ...
- POJ 2337 输出欧拉路径
太无语了. 这道题做了一整天. 主要还是我太弱了. 以后这个就当输出欧拉路径的模版吧. 题目中的输出字典序最小我有点搞不清楚,看了别人是这么写的.但是我发现我过不了后面DISCUSS里面的数据. 题意 ...
- ssh的public key的使用
1.在客户端Xftp的工具栏tools->Key Generation Parameters 弹出会话窗口,在key type中选择RSA
- MVC 4 插件化架构简单实现实例篇
ASP.NET MVC 4 插件化架构简单实现-实例篇 先回顾一下上篇决定的做法: 1.定义程序集搜索目录(临时目录). 2.将要使用的各种程序集(插件)复制到该目录. 3.加载临时目录中的程序集 ...
- Unicode(UTF&UCS)深度历险
Unicode(UTF&UCS)深度历险 计算机网络诞生后,大家慢慢地发现一个问题:一个字节放不下一个字符了!因为需要交流,本地化的文字需要能够被支持. 最初的字符集使用7bit来存储字符,因 ...
- .NET开发邮件发送功能
.NET开发邮件发送功能 今天,给大家分享的是如何在.NET平台中开发“邮件发送”功能.在网上搜的到的各种资料一般都介绍的比较简单,那今天我想比较细的整理介绍下: 1) 邮件基础理论知 ...
- 学会Func
学会Func 前言 首先你要会最基本的委托的使用,如果不会,看起来可能会有难度.. 不过第一个例子将帮你复习一下委托delegate 接下来通过几个例子就会学会怎么灵活使用Func了 委托回顾(d ...
- Twitter Storm:单机环境的安装与配置
Twitter Storm:单机环境的安装与配置 好久没写博客了,这一段时间一直被导师push着做毕业设计.由于目前的方向偏向于图像识别检索,毕设打算做一个基于分布式计算平台的图像检索系统,查阅相关资 ...
- Android While 循环导致的资源占用过高进而导致程序崩溃问题
Timeline: Activity_launch_request time:6562004-14 15:31:25.347: I/dalvikvm(3483): Total arena pages ...
- 超详细LAMP环境搭建
一.准备工作 1.安装编译工具gcc.gcc-c++ 注意解决依赖关系,推荐使用yum安装,若不能联网可使用安装光盘做为yum源—— 1)编辑yum配置文件: # mount /dev/cdrom / ...