• 解析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);
            }
  • 相关阅读:
    有關網路的書
    详解Linux安装GCC方法
    acwing4. 多重背包问题 I
    acwing5. 多重背包问题 II
    acwing902. 最短编辑距离
    acwing895. 最长上升子序列
    acwing143. 最大异或对
    acwing9. 分组背包问题
    CNN反向传播:从直觉到起源
    anaconda、torchGPU的win10本地配置
  • 原文地址:https://www.cnblogs.com/LJP-JumpAndFly/p/10338146.html
Copyright © 2020-2023  润新知