zoukankan      html  css  js  c++  java
  • 解析Excel

    解析上传的Excel文件。

    需要引入第三方程序集【下载地址

      
          /// <summary>
            /// 解析Excel表格
            /// </summary>
            /// <param name="virthualPath"></param>
            /// <param name="msg"></param>
            /// <returns></returns>
            public static int AnalysisExcel(string virthualPath, out string msg)
            {
                try
                {
                    var filePath = HttpContext.Current.Server.MapPath(virthualPath);
                    if (!File.Exists(filePath))
                    {
                        msg = "找不到上传的Excel文件,请重新上传!";
                        return 0;
                    }
    
                    var fileInfo = new FileInfo(filePath);
                    using (ExcelPackage package = new ExcelPackage(fileInfo))
                    {
                        ExcelWorksheet worksheet = package.Workbook.Worksheets[1];
    
                        int colStart = worksheet.Dimension.Start.Column;
                        int colEnd = worksheet.Dimension.End.Column;
                        int rowStart = worksheet.Dimension.Start.Row;
                        int rowEnd = worksheet.Dimension.End.Row;
                        List<TempClass> excelList = new List<TempClass>();
    
                        //从第二行开始
                        for (int row = rowStart + 1; row <= rowEnd; row++)//从第二行开始,第一行是表头
                        {
                            TempClass item = new TempClass();
    
                            item.Id = worksheet.Cells[row, 1].GetValue<int>();
                            item.Name = worksheet.Cells[row, 2].GetValue<string>();
                            item.Number = worksheet.Cells[row, 3].GetValue<int>();
                            excelList.Add(item);
                        }
    
                        if (excelList.Count <= 0)
                        {
                            msg = "您还没有新创建的行!";
                            DeleteExcel(filePath);
                            return 0;
                        }
    
                      try
                        {
                            int result = DAL.DealExcel(excelList);
                            if (result > 0)
                            {
                                msg = "导入成功";
                            }
                            else
                            {
                                msg = "导入失败";
                            }
                        }
                        catch (Exception ex)
                        {
                            msg = "导入数据库时出错";
                            DeleteExcel(filePath);
                            return 0;
                        }
    
                        return 0;
                    }
                }
                catch (Exception ex)
                {
                    msg = "无法解析该Excel文件!";
                }
                return 0;
            }
    
            /// <summary>
            /// 删除Excel文件
            /// </summary>
            /// <param name="filePath"></param>
            public static void DeleteExcel(string filePath)
            {
                if (File.Exists(filePath))
                    File.Delete(filePath);
            }
  • 相关阅读:
    再谈ORACLE CPROCD进程
    fopen()函数
    Java抓取网页数据(原网页+Javascript返回数据)
    Vmware ESX 5.0 安装与部署
    PostgreSQL服务端监听设置及client连接方法
    方向梯度直方图(HOG)和颜色直方图的一些比較
    Vim简明教程【CoolShell】
    FileSystemWatcher使用方法具体解释
    几种常见模式识别算法整理和总结
    ThreadPool.QueueUserWorkItem的性能问题
  • 原文地址:https://www.cnblogs.com/LJP-JumpAndFly/p/10338146.html
Copyright © 2011-2022 走看看