求解java将excel数据导入到sql中的代码

前台上传excel文件(已按照固定模版手工输入完成)全部为字符串格式。请问怎么通过后台代码逐行提取,将每一行的值导入到数据库中!很急,谢谢大神!框架用的是jfinal

请提供详细代码,谢谢各位大神图片说明

我昨天才刚刚写了一个解析excel并将excel中的数据导入到sql中的winform,功能已经完美实现,不过是winform,

这是.net中的解析excel代码,我觉得你现在只要现将excel中的数据解析放到一个list集合里面,然后用循环遍历这个集合并拼接sql语句,就行了
//开始校验是否为excel
string url = tempPath + sNewFileName + ".xls";
string excelUrl = url;
try
{
FileStream fsyz = new FileStream(url, FileMode.Open, FileAccess.Read);
byte[] b = new byte[4];
string temstr = "";
//将文件流读取的文件写入到字节数组
if (Convert.ToInt32(fsyz.Length) > 0)
{
fsyz.Read(b, 0, 4);
fsyz.Close();
for (int i = 0; i < b.Length; i++)
{
temstr += Convert.ToString(b[i], 16);
}
}
//判断上传文件的头文件是否是excel格式
if (temstr.ToUpper() == "D0CF11E0")
{
//开始校验文件中的数据
StringBuilder sbr = new StringBuilder();
List list = new List();
list.Clear();
try
{
using (FileStream fs = File.OpenRead(url)) //打开myxls.xls文件
{
HSSFWorkbook wk = new HSSFWorkbook(fs); //把xls文件中的数据写入wk中
for (int i = 0; i < wk.NumberOfSheets; i++) //NumberOfSheets是myxls.xls中总共的表数
{
ISheet sheet = wk.GetSheetAt(i); //读取当前表数据
for (int j = 0; j <= sheet.LastRowNum; j++) //LastRowNum 是当前表的总行数
{
IRow row = sheet.GetRow(j); //读取当前行数据
if (j > 0)
{
if (row != null)
{
ModelExcel lu = new ModelExcel();
if (row.GetCell(0) != null)
{
lu.Sign_Code = row.GetCell(0).ToString();
}
if (row.GetCell(1) != null)
{
lu.Counts = (row.GetCell(1).ToString()).ToInt();
}
if (row.GetCell(2) != null)
{
lu.Unit = row.GetCell(2).ToString();
}
list.Add(lu);
}
}
}
}

                            }
                        }
                        catch (Exception ex)
                        {
                            context.Response.Write("{\"status\" : \"error\",\"msg\": \"" + ex.Message + "\"}");
                        }
                        BLL.Order_Depot_BLL bll = new BLL.Order_Depot_BLL();
                        var ds = bll.GetList(" 1=1").Tables[0].Select();
                        //keylist数据库中数据
                        List<string> keyList = ds.Select(p => p["ITNBR"].ToString()).ToList();
                        List<ErrorModelExcel> meList = new List<ErrorModelExcel>();
                        meList.Clear();
                        bool Error = false;
                        for (int i = 0; i < list.Count; i++)
                        {
                            ErrorModelExcel lu = new ErrorModelExcel();
                            if (!keyList.Contains(list[i].Sign_Code))
                            {
                                lu.Sign_Code = list[i].Sign_Code.ToString() + "(Error 不存在该产品)";
                                Error = true;
                            }
                            else
                            {
                                lu.Sign_Code = list[i].Sign_Code.ToString();
                            }
                            if (list[i].Unit != "箱" && list[i].Unit != "个")
                            {
                                lu.Unit = list[i].Unit + "(Error 单位只能为‘箱’或‘个’)";
                                Error = true;
                            }
                            else
                            {
                                lu.Unit = list[i].Unit;
                            }
                            if (list[i].Counts <= 0)
                            {
                                lu.Counts = list[i].Counts.ToString() + "(Error 数量不能小、等于0)";
                                Error = true;
                            }
                            else
                            {
                                lu.Counts = list[i].Counts.ToString();
                            }
                            meList.Add(lu);
                        }

                        if (Error)
                        {
                            //生成表头
                            InitializeWorkbook();
                            ISheet ErrorSheet1 = hssfworkbook.CreateSheet("错误详情");
                            var color = NPOI.HSSF.Util.HSSFColor.RED.index;

                            IRow ErrorRows1 = ErrorSheet1.CreateRow(0);
                            ErrorRows1.CreateCell(0).SetCellValue("产品识别码");
                            ErrorRows1.CreateCell(1).SetCellValue("数量");
                            ErrorRows1.CreateCell(2).SetCellValue("单位");

                            IWorkbook wb = new HSSFWorkbook();
                            IFont fontcolorblue = wb.CreateFont();
                            fontcolorblue.Color = HSSFColor.OLIVE_GREEN.RED.index;

                            //循环填充内容
                            for (int k = 0; k < meList.Count; k++)
                            {
                                IRow rows = ErrorSheet1.CreateRow((k + 1));
                                rows.CreateCell(0).SetCellType(CellType.STRING);
                                rows.CreateCell(0).SetCellValue(meList[k].Sign_Code);
                                rows.CreateCell(1).SetCellType(CellType.STRING);
                                rows.CreateCell(1).SetCellValue(meList[k].Counts);
                                rows.CreateCell(2).SetCellType(CellType.STRING);
                                rows.CreateCell(2).SetCellValue(meList[k].Unit);
                            }


                            //var ErrorUrl = @"c://Error" + Utils.GetRamCode() + ".xls";
                            var ErrorUrl = @"c://ErrorData/ErrorExcel" + Utils.GetRamCode() + ".xls";
                            //打开一个xls文件,如果没有则自行创建,如果存在myxls.xls文件则在创建是不要打开该文件!
                            using (FileStream fs = File.OpenWrite(ErrorUrl))
                            {
                                hssfworkbook.Write(fs);
                            }
                            Error = false;
                            list.Clear();
                            meList.Clear();
                            ErrorUrl = ErrorUrl.Substring(ErrorUrl.IndexOf("ta/") + 3);
                            context.Response.Write(JsonHelper.ObjectToJSON(new { Status = ErrorUrl }));
                        }
                        else
                        {
                            //验证通过,回传状态及路径信息
                            context.Response.Write(sb.ToString());
                        }
                    }
                    else
                    {
                        File.Delete(excelUrl);
                        //文件格式验证不通过,回传状态信息
                        context.Response.Write(JsonHelper.ObjectToJSON(new { Status = "请上传正确的Excel格式文件!" }));
                    }


                }
                //头文件解析失败,不是excel格式,回传相应信息
                catch (Exception)
                {
                    File.Delete(excelUrl);
                    //文件格式验证不通过,回传状态信息
                    context.Response.Write(JsonHelper.ObjectToJSON(new { Status = "请上传正确的Excel格式文件!" }));
                }

网上这些东西多了,一搜一大堆。。。

http://blog.csdn.net/yangymy/article/details/70308097

用poi解析 excel
http://blog.csdn.net/slience_perseverance/article/details/8228157

这是最简洁的了。
http://blog.csdn.net/readiay/article/details/45540067