java – 从excel读取图像并将其存储在sqlserver中
发布时间:2020-12-15 02:10:18 所属栏目:Java 来源:网络整理
导读:我有一张叫做’tab1’的桌子 cl_id int //auto imcrementcl_image image 我想从图像中读取excel中的图像并将其存储在上表中 FileInputStream fileInputStream = new FileInputStream( "Delux.xls"); System.out.println(fileInputStream); HSSFWorkbook work
我有一张叫做’tab1’的桌子
cl_id int //auto imcrement cl_image image 我想从图像中读取excel中的图像并将其存储在上表中 FileInputStream fileInputStream = new FileInputStream( "Delux.xls"); System.out.println(fileInputStream); HSSFWorkbook workbook = new HSSFWorkbook(fileInputStream); HSSFSheet worksheet = workbook.getSheet("Delux"); Iterator rows = worksheet.rowIterator(); HSSFRow row = (HSSFRow) rows.next(); List lst = workbook.getAllPictures(); Iterator it = lst.iterator(); while (rows.hasNext()) { row = (HSSFRow) rows.next(); //reading the image from excel HSSFCell cellP1 = row.getCell((short) 1); PictureData pict = (PictureData)it.next(); String ext = pict.suggestFileExtension(); byte[] data = pict.getData(); InputStream is = new ByteArrayInputStream(data); try { PreparedStatement stmt = getdbconn() .prepareStatement( "insert into tab1 (cl_image) values(?)"); stmt.setBinaryStream(1,is); stmt.executeUpdate(); is.close(); } catch (ClassNotFoundException e) { e.printStackTrace(); } catch (SQLException e) { e.printStackTrace(); } } 但是当我动态存储图像时,我得到的错误就像
任何人都可以建议我一个方法来实现这一点??? 解决方法
不支持IMAGE和TEXT等数据类型,不推荐使用它们. 因此将其更改为VARBINARY(最大).最重要的导入事物是IMAGE数据类型需要以特殊方式存储大小而不是扩展VARBINARY以满足任何方式一直到2GB.由于图像不适合cl_image字段,因此引发了错误.
(编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |