导入excel的时候excel中有一个单元格是空的话后边的就导入不进数据库了该在哪加判断?

private List> readExcelValue(Workbook wb) {
// 得到第一个shell
Sheet sheet = wb.getSheetAt(0);
// 得到Excel的行数
this.totalRows = sheet.getPhysicalNumberOfRows();
// 得到Excel的列数(前提是有行数)
if (totalRows > 1 && sheet.getRow(0) != null) {
this.totalCells = sheet.getRow(0).getPhysicalNumberOfCells();
}
List> userList = new ArrayList>();
// 循环Excel行数
for (int r = 1; r < totalRows; r++) {
Row row = sheet.getRow(r);
if (row == null) {
continue;
}
// 循环Excel的列
Map map = new HashMap();
for (int c = 0; c < this.totalCells; c++) {
Cell cell = row.getCell(c);
if (null != cell) {
if (c == 0) {
// 如果是纯数字,比如你写的是25,cell.getNumericCellValue()获得是25.0,通过截取字符串去掉.0获得25
if (cell.getCellType() == HSSFCell.CELL_TYPE_NUMERIC) {
String name = String.valueOf(cell.getNumericCellValue());
map.put("name", name.substring(0, name.length() - 2 > 0 ? name.length() - 2 : 1));// 名称
} else {
map.put("name", cell.getStringCellValue());// 名称
}
} else if (c == 1) {
if (cell.getCellType() == HSSFCell.CELL_TYPE_NUMERIC) {
String sex = String.valueOf(cell.getNumericCellValue());
map.put("sex", sex.substring(0, sex.length() - 2 > 0 ? sex.length() - 2 : 1));// 性别
} else {
map.put("sex", cell.getStringCellValue());// 性别
}
} else if (c == 2) {
if (cell.getCellType() == HSSFCell.CELL_TYPE_NUMERIC) {
String age = String.valueOf(cell.getNumericCellValue());
map.put("age", age.substring(0, age.length() - 2 > 0 ? age.length() - 2 : 1));// 年龄
} else {
map.put("age", cell.getStringCellValue());// 年龄
}
} else if (c == 3) {
if (cell.getCellType() == HSSFCell.CELL_TYPE_NUMERIC) {
String age = String.valueOf(cell.getNumericCellValue());
map.put("sg", age.substring(0, age.length() - 2 > 0 ? age.length() - 2 : 1));// 身高
} else {
map.put("sg", cell.getStringCellValue());// 身高
}
}

            }

        }
        // 添加到list
        userList.add(map);
    }
    return userList;
}

2个回答

应该是报错了。你自己导入前有没有判断是否为空,然后在对数据做处理。看你代码,都没有做判断

qq_23126581
玄元复始道生初,守一无穷尽万物 回复duanlianjieQDM: 只要是对数据进行处理了,就要判空。比如你代码里字符串的截取。
11 个月之前 回复
duanlianjieQDM
duanlianjieQDM 我现在是不知道在哪加判断了试了那么多地方都不对
11 个月之前 回复
Csdn user default icon
上传中...
上传图片
插入图片
抄袭、复制答案,以达到刷声望分或其他目的的行为,在CSDN问答是严格禁止的,一经发现立刻封号。是时候展现真正的技术了!
其他相关推荐
EXCEL导入EXCEL导入EXCEL导入EXCEL导入
EXCEL导入
Java 导入excel中有合并的单元格
导入到合并的单元格就会提示有问题报null,该怎么办
excel空单元格导入报错问题
刚刚在使用excel往数据库导入数据时,只要一遇到有空的单元格 eclipse就会报错 求指点!rnrn调用的方法rn[code=java]rnprivate String getCellValue(Cell c)rn rn String o=null;rn rn switch (c.getCellType()) rn case Cell.CELL_TYPE_BLANK:rn o="";rn break;rn case Cell.CELL_TYPE_BOOLEAN:rn o=String.valueOf(c.getBooleanCellValue());rn break;rn case Cell.CELL_TYPE_FORMULA:rn o=String.valueOf(c.getCellFormula());rn break;rn case Cell.CELL_TYPE_NUMERIC:rn o=String.valueOf(c.getNumericCellValue());rn break;rn case Cell.CELL_TYPE_STRING:rn o=c.getStringCellValue();rn break;rn default:rn o=null;rn break;rn rn return o;rn rnrn[/code]rnrnrnrn用这样的方式取值的rn[code=java]rnWorkbook wb=WorkbookFactory.create(new File(path));rn Sheet sheet=wb.getSheetAt(0);rn rn Row row=null;rn rn for(int i=1;i<=sheet.getLastRowNum();i++)rn rn for(int j=row.getFirstCellNum();j
导入excel到数据库,做判断。
根据CELL值判断,有则更新DATAQUANTITY值,没有插入数据。merge into我写过了,不报错,但数据库数据没变化,想问下sql语句里面怎么写判断,详细点。谢谢!
C# excel导入导入数据库
我要把My.xls这个excel文件导入数据库或者dataSet,我该如何用代码实现?rnrn小弟是个新学C#的,请求各位不吝赐教,能给我一些资料,实例代码,谢谢!
poi导入excel判断单元格类型及转换
private String getCellValue(HSSFCell cell) { String cellValue = &quot;&quot;; DecimalFormat df = new DecimalFormat(&quot;#&quot;); switch (cell.getCellType()) { case HSSFCell.CELL_TYPE_STRING: cellValue =...
判断excel不能导入
vf编程中经常遇到某些excel文件不能import,请问怎样判断,又怎样处理呢?
如何在导入excel表数据的时候不导入空白单元格
如题rn我有一excel表rn里边只有200条数据rnrn但在导入的时候用dw_rowcount取得了400多rnrn含有空白的单元格
excel 导入 mssql 中有选择性的导入
SELECT * into newtablernFROM OpenDataSource( 'Microsoft.Jet.OLEDB.4.0',rn 'Data Source="c:\chj.xls";Extended properties=Excel 8.0','select [学生姓名] from [Sheet1$]')
导入excel 读取单元格报错
java.lang.NumberFormatException: You cannot get a date value from a String based cell java.lang.NumberFormatException: You cannot get a string value from a numeric cell 无法从数值单元格获取字符串值。
导入excel到数据库
导入excel的小工具,通过调用第三方类库,完成DataSet接收excel数据。说完了,凑字数凑字数凑字数凑字数凑字数凑字数凑字数凑字数凑字数凑字数
excel 导入数据库
asp.net excel 导入数据库, 对应数据库字段
EXCEL简单导入数据库
简单的EXCEL导入到数据库的程序,读取路径后导入的,小功能一个,无聊做的
Excel表导入数据库
我有一张Excel表,里面有多个页面Sheet1、Sheet2、Sheet3.....现在我只能扫描到Sheet1里面的数据,如何能把其他页面的数据也扫描到并插入数据库中,求代码!
Excel导入SQlserver 数据库
如果导入数据表中有自增标识列,先讲自增去除 验证字段只能验证单字段,多字段不支持 数据库表名必须填写 导入数据库信息在web.config中配置 支持Excel2010 及之前版本,导入数据库版本为SQlserver 2005
java导入excel到数据库
导读:                要想把excel中的数据通过java一次性导入到数据库,就要用java读取并解析excel,要读取并解析excel就要在导入执行时传进excel的存储路径,如下excelPath function import(){ document.MaterialPriceInfoForm.formAction.value="ImportExcel";
excel导入sql数据库
这里面给出了在web开发中从数据库导出excel的资料,希望能给你帮助
导入Excel到数据库
C#导入Excel到数据库,可用于网页后台开发使用,批量导入有助于加快上传速度,
Excel导入SQL数据库
用C#实现的Excel导入SQL数据库的实例源码,对想学习办公工具同数据库交互的技术的可以下载看看。
EXCEL如何导入数据库
EXCEL如何导入各种数据库的方法及应用!
导入Excel数据到数据库
导入Excel数据到数据库
poi导入excel到数据库
package com.wondersgroup.falcon.question.tool;rnrnimport java.io.File;rnimport java.io.FileInputStream;rnimport java.io.FileNotFoundException;rnimport java.io.IOException;rnimport java.sql.Connection;rnimport java.sql.PreparedStatement;rnimport java.sql.SQLException;rnrnimport org.apache.poi.hssf.usermodel.HSSFWorkbook;rnimport org.apache.poi.ss.usermodel.Cell;rnimport org.apache.poi.ss.usermodel.Row;rnimport org.apache.poi.ss.usermodel.Sheet;rn//import jxl.Workbook; rnimport jxl.read.biff.BiffException;rnpublic class ExcelToDB_PanDuan rnrn private Connection con;rn private DBConnection db;rn private PreparedStatement pst;rn private String filePath ="f:\\test.xls";rnrn public boolean insertDB() throws BiffException rn boolean flag = true;rn db = new DBConnection();rn con = db.getConnection();rn try rn // 文件流指向excel文件rn File file = new File(filePath);rn FileInputStream fin = new FileInputStream(file);rn System.out.println("=====================04");rn System.out.println(fin);rn System.out.println("=====================05");rnrn //HSSFWorkbook workbook = new HSSFWorkbook(fin);rn // 创建工作薄rn HSSFWorkbook workbook = new HSSFWorkbook(fin);rn//运行到这行不向下运行了!!!!!!!!!!!!!求解答rn System.out.println("=====================06");rn //Workbook wb = WorkbookFactory.create(fin);rn //XSSFWorkbook workbook = new XSSFWorkbook(filePath);rn //Workbook workbook = new HSSFWorkbook(fin);rn System.out.println("=====================022");rn // 得到工作表rn Sheet sheet = (Sheet) workbook.getSheetAt(0);rn System.out.println("=====================05");rn rn System.out.println("======================1");rn int totalRow = sheet.getLastRowNum();// 得到excel的总记录条数rn String st_tg = "";rn String st_da = "";rn String str = "";rnrn String sql = "insert into e_questionstest (st_id,st_tg,st_da,st_kszy,st_ywlxid,"rn + " st_zyxid,st_lxid,st_lrsj,st_xgsj,st_jyxgcs,st_scbz,st_check,st_sysj)"rn + " values(questiontest_sequence.nextval,?,?,2,1,1,3,sysdate,sysdate,0,0,1,sysdate) "; // questiontest_sequence.nextval为数据库表序列rnrn for (int i = 1; i <= totalRow; i++) rn System.out.println("===================2222");rn Row row = sheet.getRow(i);rn Cell cell = null;rn cell = row.getCell(2);rn st_tg = cell.getRichStringCellValue().toString();rn cell = row.getCell(3);rn str = cell.getRichStringCellValue().toString();rn st_da = str.replaceAll(" ", "");rn if (st_da.equals("对")) rn st_da = "T";rn else rn st_da = "F";rn rn System.out.println("st_tg:"+st_tg);rn System.out.println("st_da:"+st_da);rn rn rn rn rn pst = con.prepareStatement(sql);rn System.out.println("sql---------"+sql);rn pst.setString(1, st_tg);rn pst.setString(2, st_da);rn pst.execute();rn System.out.println("======================");rn rn catch (FileNotFoundException e) rn flag = false;rn e.printStackTrace();rn catch (IOException ex) rn flag = false;rn ex.printStackTrace();rn catch (SQLException exx) rn flag = false;rn exx.printStackTrace();rn finally rn try rn pst.close();rn con.close();rn catch (SQLException e) rn e.printStackTrace();rn rn rn return flag;rnrn rnrn public static void main(String args[]) rn ExcelToDB_PanDuan toDB = new ExcelToDB_PanDuan();rn try rn toDB.insertDB();rn catch (BiffException e) rn e.printStackTrace();rn rn rnrnrnrnrnrnDBConnection rnpackage com.wondersgroup.falcon.question.tool;rnrnimport java.sql.Connection;rnimport java.sql.DriverManager;rnimport java.sql.SQLException;rnrnpublic class DBConnection rnrn private String classString = "oracle.jdbc.driver.OracleDriver";rn private String username = "falcon";rn private String password = "falcon";rn private String url = "java:oracle:thin:@localhost:1521:orcl";rn private Connection con = null;rnrn public Connection getConnection() rn try rn Class.forName(classString);rn con = DriverManager.getConnection(url, username, password);rn catch (ClassNotFoundException e) rn e.printStackTrace();rn catch (SQLException e) rn e.printStackTrace();rn rn return con;rn rn
excel 导入数据库2
using System; using System.Data; using System.Data.OleDb; using System.Data.SqlClient;
excel表导入数据库
1、进行数据处理,excel表头(第一行)字段名必须和数据库的保持一致,类型也要一致 2、右击数据库名-&gt;任务-&gt;导入数据 3、数据源选择Microsoft Excel,Excel文件路径选择要导入的文件,勾选首行包含列名称 4、目标选择SQL Server Native Client 11.0,身份验证使用SQL Server身份验证,输入用户名和密码即可 5、默认选择复制一...
C#导入excel到数据库
这几天又碰到了要导excel数据到数据库中,之前在网上也是找,东拼西凑也是把功能弄出来了,今天写个博客记录下。 首先页面的代码 @using (Html.BeginForm(&quot;Browse&quot;, &quot;OutGygx&quot;, FormMethod.Post, new { enctype = &quot;multipart/form-data&quot;, id = &quot;form_Upload&quot; })) { ...
Excel导入sql数据库
Excel导入数据库C#源代码,。里面带有SQL数据库,跟Excel表!!
Excel文档导入数据库
将Excel文档导入数据库.
EXCEL图片导入数据库
Microsoft.Office.Interop.Excel.Application MyExcel = new Microsoft.Office.Interop.Excel.Application();rn //打开excel rn MyExcel.Workbooks.Open(path, Type.Missing, Type.Missing, Type.Missing, Type.Missing, Type.Missing, Type.Missing, Type.Missing, Type.Missing, Type.Missing, Type.Missing, Type.Missing, Type.Missing, Type.Missing, Type.Missing);rn Microsoft.Office.Interop.Excel.Workbook It_book = null;rn Microsoft.Office.Interop.Excel.Worksheet It_sheet = null;rn Microsoft.Office.Interop.Excel.Range It_rang = null;rn MyExcel.DisplayAlerts = false;rn It_book = MyExcel.Workbooks[1];rn //获取sheet表 rn It_sheet = (Worksheet)It_book.Worksheets[1];rn //initial the data 34 rn int Priority = -9999, Fsize = 0;rn byte[] Special_Picture = ;rn It_rang = It_sheet.get_Range("E1", "G1");rn It_rang.Select();rn //拷贝单元格的图片,记住get_Range所选取的矩阵范围一定要比图片所占据单元格的范围大,否则只会显示一部分 rn It_rang.CopyPicture(XlPictureAppearance.xlScreen, XlCopyPictureFormat.xlBitmap);rn if (Clipboard.ContainsImage())rn rn MemoryStream imagestream = new MemoryStream();rn Clipboard.GetImage().Save(imagestream, System.Drawing.Imaging.ImageFormat.Jpeg);rn //int length = (int)imagestream.Length; rn Fsize = (int)imagestream.Length;rn //图片字节流 rn Special_Picture = imagestream.ToArray();rn rnrn MyExcel.Quit();rn System.Runtime.InteropServices.Marshal.ReleaseComObject(MyExcel);rn MyExcel = null;rn It_book = null;rn It_sheet = null;rn问下为什么Clipboard.ContainsImage() 一直为空。我在F1是有图片的。而且EXCEL里面的粘贴版上面都有复制的图片。rn
excel没法导入数据库
[code=C#]rnprivate DataSet excel(string str)rn rn string sqlstr;rn sqlstr = "Provider=Microsoft.Jet.OLEDB.4.0;Data Source=" + str + ";Extended Properties='Excel 8.0; HDR=YES; IMEX=1;'";rn OleDbConnection conn = new OleDbConnection(sqlstr);rn OleDbDataAdapter adapter = new OleDbDataAdapter("SELECT * FROM [Sheet1$]", conn);rn adapter.Fill(ds,"excel");rn DataTable dt = ds.Tables["excel"];rn return ds;rn rnprotected void Button2_Click(object sender, EventArgs e)rn rn string str = FileUpload1.FileName;rn string FilePath = Server.MapPath("./FileUpload/") + str;rn FileUpload1.PostedFile.SaveAs(FilePath);rn ds = excel(FilePath);rn d.UpDate1(ds, "excel");//引用SqlData.cs中的UpDate1()函数rn rnrnSqlData d = new SqlData();rnrn//以下是SqlData.cs中的代码,SqlData.cs是用来存放连接数据库函数的rnpublic class SqlDatarnrn //定义该类共用变量rn private SqlConnection conn;rn private SqlCommand cmd;rn private DataSet ds;rn private SqlDataAdapter da;rnrnpublic void UpDate1(DataSet dataset, string table)rn rn cmd = new SqlCommand("insert into equipment(dw,e_number,e_name,e_type,e_brand,e_place,e_date,e_time)" + "values(@dw,@e_number,@e_name,@e_type,@e_brand,@e_place,@e_date,@e_time)", conn);rn cmd.Parameters.Add("@dw", SqlDbType.NVarChar, 50, "dw");rn cmd.Parameters.Add("@e_number", SqlDbType.NVarChar, 50, "e_number");rn cmd.Parameters.Add("@e_name", SqlDbType.NVarChar, 50, "e_name");rn cmd.Parameters.Add("@e_type", SqlDbType.NVarChar, 50, "e_type");rn cmd.Parameters.Add("@e_brand", SqlDbType.NVarChar, 50, "e_brand");rn cmd.Parameters.Add("@e_place", SqlDbType.NVarChar, 50, "e_place");rn cmd.Parameters.Add("@e_data", SqlDbType.SmallDateTime, 4, "e_data");rn cmd.Parameters.Add("@e_time", SqlDbType.SmallDateTime, 4, "e_time");rn da.InsertCommand = cmd;rn da.Update(dataset, table);rn rnrnrn[/code]rnrn我的excel表:rndw e_number e_name e_type e_brand e_place e_date e_time 第一行rnaaa bbb ccc sss ddd eee 2011-01-01 2011-01-01 第二行rnrn运行没有错误,点击按钮后没反应,查找文件确实是上传了excel的。rnrn我想应该是上传数据的SqlDataAdapter.Update()函数有问题,它是怎么对应excel表内的列和数据库的表字段对应呢??rnrn麻烦各位朋友帮忙看看,比较急,谢谢了!!!!
Excel导入AC数据库
Excel导入AC数据库
导入EXCEL进数据库!
请问导入EXCEL表格的内容进数据库的代码怎么写:rn我从一数据库里导出了一EXCEL表格,想导入到另一库里,因为这是另外一服务器,所以我想把记录导入数据库(库结构都相同,而且列名与EXCEL顺序也对)rnrn哪位高手知道UNIT的代码怎么写吗???
excel 导入插入数据库
package com.meihui.nhitsm.temp.application.pj.imp; import java.io.BufferedOutputStream; import java.io.FileInputStream; import java.io.IOException; import java.io.InputStream; import java.sql.C
导入Excel存入数据库
直接上代码,注释写的很清楚 需要的jar包下载地址 https://download.csdn.net/download/yanpengfeil/10611873 package com.my.test; import java.io.File; import java.io.FileInputStream; import java.io.FileNotFoundException; i...
Excel 导入数据库 问题 ?
当在Excel 修改日期后 不能插入数据库
C# Excel 导入数据库
[code=csharp]rnAccess.Class1 ac = new Access.Class1();rnSqlConnection cn = ac.myConnection();rncn.Open();rnstring strpath = FileUpload1.PostedFile.FileName.ToString();   //获取Execle文件路径rnstring filename = FileUpload1.FileName;                       //获取Execle文件名rnDataSet ds = ac.ExecleDs(strpath,filename);rnDataRow[] dr = ds.Tables[0].Select();                        //定义一个DataRow数组rn[/code]rnrnAccess.Class1 ac = new Access.Class1();rn这个是干什么的,用什么用啊,报错了...
excel 导入数据库 3.48716000018E+20 。。。。
导入 是 原字符 348716000018000135626 导入 成 3.48716000018E+20 怎么解决????
导入EXCEL到数据库
[code=SQL]rnSELECT rn *rn FROM OpenDataSource('Microsoft.Jet.OLEDB.4.0','Data Source="E\a.xls";Extended properties=Excel 5.0')...[Sheet1$]rn[/code]rnrn这样的话会把EXCEL中那张表的所有行都导到数据库中了.有好多NULL值.并且查询结果的列名是第一行单元格中的值.其实EXCEL只有2列,而数据只有3行(从第2行到第4行).请问我如何指定只查询出这3行数据.并且为这2列取指定的名字.因为我需要将查出的2列配合其他参数插入到一张表中.rn如rninsert table_a(id1,id2,id3,id4)rnselect [来自EXCEL的两列],'1','2'rnFROM OpenDataSource('Microsoft.Jet.OLEDB.4.0','Data Source="E\a.xls";Extended properties=Excel 5.0')...[Sheet1$]rn
相关热词 c# 标准差 计算 c#siki第五季 c#入门推荐书 c# 解码海康数据流 c# xml的遍历循环 c# 取 查看源码没有的 c#解决高并发 委托 c#日期转化为字符串 c# 显示问号 c# 字典对象池