Excel 数据 通过 c# 代码逻辑 导入 到数据库 。
其中各种坑爹。原因是 单元格 数据 与 数据库 字段的数据类型 会有出入。因为 Excel 是人工输入。
比如 一个单元格 本来 只能输入 数字 的,然后 对应 数据库 里面的一个 int类型,但是 他可以 输入 文字啊。
所以可以通过CellType 来判断。
比如
if(row.Cells[11 + k * 3].CellType == CellType.Numeric)
doSomething....
另外就是 版本判断了
if (FileName.IndexOf(".XLSX", System.StringComparison.Ordinal) > 0) // 2007版本
workbook = new XSSFWorkbook(fs);
else if (FileName.IndexOf(".XLS", System.StringComparison.Ordinal) > 0) // 2003版本
workbook = new HSSFWorkbook(fs);
else
{
return "";
}
var list = result.ToList(); //Search(createDate);
var fileOne = new FileStream(Server.MapPath("/template/EveryDayReport.xls"), FileMode.Open, FileAccess.ReadWrite);
var wbOne = new HSSFWorkbook(fileOne);
var sheet = (HSSFSheet)wbOne.GetSheetAt(0);
int startRow = 2;
var temp = list.Count();
//插入行:
sheet.ShiftRows(startRow, temp + 2, temp);