解析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);
}

浙公网安备 33010602011771号