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 导入 与 导出的更多相关文章

  1. C# Excel导入、导出【源码下载】

    本篇主要介绍C#的Excel导入.导出. 目录 1. 介绍:描述第三方类库NPOI以及Excel结构 2. Excel导入:介绍C#如何调用NPOI进行Excel导入,包含:流程图.NOPI以及C#代 ...

  2. ASP.NET MVC5+EF6+EasyUI 后台管理系统(63)-Excel导入和导出-自定义表模导入

    系列目录 前言 上一节使用了LinqToExcel和CloseXML对Excel表进行导入和导出的简单操作,大家可以跳转到上一节查看: ASP.NET MVC5+EF6+EasyUI 后台管理系统(6 ...

  3. C# Excel导入、导出

    本篇主要介绍C#的Excel导入.导出. 目录 1. 介绍:描述第三方类库NPOI以及Excel结构 2. Excel导入:介绍C#如何调用NPOI进行Excel导入,包含:流程图.NOPI以及C#代 ...

  4. JXLS (Excel导入、导出工具使用)

    JXLS (Excel导入.导出工具使用) 1:简介: jxls是一个简单的.轻量级的excel导出库,使用特定的标记在excel模板文件中来定义输出格式和布局.java中成熟的excel导出工具有p ...

  5. ASP.NET MVC5+EF6+EasyUI 后台管理系统(63)-Excel导入和导出

    系列目录 昨天文章太过仓促没有补充导出的示例源码,在者当时弄到到很晚没时间做出导出功能,对阅读理解造成影响,现补充一份示例源码,顺便补充导出的功能说明,望理解 示例代码下载   https://yun ...

  6. winform之excel导入和导出

    引用命名空间   using Microsoft.Office.Interop.Excel;DataGridView 导出到Excel public static void SaveAs(DataGr ...

  7. ASP.NET MVC5+EF6+EasyUI 后台管理系统(87)-MVC Excel导入和导出

    本文示例代码下载: 链接:http://pan.baidu.com/s/1jHBdgCA 密码:hzh7 ps:Vs数据库脚本在解压目录下,修改web.config数据库链接,示例代码包含:导入,导出 ...

  8. ASP.NET MVC5+EF6+EasyUI 后台管理系统(88)-Excel导入和导出-自定义表模导出

    前言 之前说了导入和导出,也提供了自定义的表模的导入,可见LinqToExcel可以做的事情不仅仅如此 这次我们来演示比较复杂的导出Excel,导出复杂的Excel与导入复杂的Excel原理基本是一样 ...

  9. c# excel 导入 与 导出(可直接用)

    c#操作excel方式很多 采用OleDB读取EXCEL文件: 引用的com组件:Microsoft.Office.Interop.Excel.dll   读取EXCEL文件 将EXCEL文件转化成C ...

随机推荐

  1. Repeater 模板中查找子控件

    前言:对于Repeater控件,相信从事NETWeb开发的同仁们再熟悉不过了.因其呈现方式和Literal一样,并不在前端生成任何表单标签元素,所以属于比较轻量级的控件.不过青睐于Repeater的主 ...

  2. [google面试CTCI] 1-5.替换字符串中特定字符

    [字符串与数组] Q:Write a method to replace all spaces in a string with ‘%20’ 题目:写一个算法将一个字符串中的空格替换成%20 解答: ...

  3. 配置restful webservice 框架restkit

    (配置restful webservice 框架restkit) RestKit 是一个开源的 objective-c 框架,容许在 iOS 和 Mac OS X 的 Objective-C 中与 R ...

  4. IceMx.Mvc 我的js MVC 框架 开篇

    开篇 这篇文章是后补的,前端时间想写一些对于js开发的一些理解,就直接写了,后来发现很唐突,所以今天在这里补一个开篇. 我的js Mvc 框架 基于实用设计,过分设计等于没设计.本着简单的原则,它只实 ...

  5. Java快速开发工具 WebBuilder 6.8发布

    WebBuilder是一款开源的可视化Java Web应用开发和运行平台: 基于浏览器的集成开发环境,可视化和智能化的设计,能轻松完成常规应用和面向手机的移动应用开发: 高效.稳定和可扩展的特点,适合 ...

  6. tomcat配置数据池

    1->配置servlet.xml 在 <GlobalNamingResources></GlobalNamingResources>中添加<Resource> ...

  7. 绘制基本图形和线型(StrokeStyle)的设置详解

    绘制基本图形和线型(StrokeStyle)的设置详解 目前,在博客园上,相对写得比较好的两个关于Direct2D的教程系列,分别是万一的Direct2D系列和zdd的Direct2D系列.有兴趣的网 ...

  8. MySQL能够承受上亿万条的数据量的架构

    MySQL能够承受上亿万条的数据量的架构 最近做的搜索引擎的数据量是越来越大估计了下在中国可能涉及到的1Kw的数据量,就全球来说也就是1K亿而已,最初是用的数据库是MySQL现在来说要做些优化,最终使 ...

  9. linux下面的解压缩文件的命令

    尝试去好好用linux.新手起步.   这边只会提到我用过的.其他相关的以后我用到了我会补充的.如果有错欢迎指正 注:1.c-创建-create 2.v-复杂输出    3.f-文件-file     ...

  10. PHP之语言基础01 By ACReaper

    1.PHP中的变量是不需要声明类型的,由$标识变量,变量的命名规则也是字母或者下划线开头,接着任意字符或者下划线. $PI = 3.14; $radius = 5; $cir = $PI * 2 * ...