`
wangchongya
  • 浏览: 22490 次
  • 性别: Icon_minigender_1
  • 来自: 湖南
社区版块
存档分类
最新评论

java 读取并保存excel中的图片

    博客分类:
  • Java
阅读更多

 

    / * 保存excel中的图片(以文件形式保存,或者存入数据库) 
     * 
     * basePath:应用所在路径,附件存放路径:
     * 参数:is是上传的附件文件流
     */
    public void saveSheetImgByFile(String basePath,InputStream is) throws ParseException {
        FileOutputStream os = null;
        try {
            Workbook wbk = Workbook.getWorkbook(is);
            //建文件目录
            File mkFile = new File(basePath);
            if (!mkFile.exists() && !mkFile.isDirectory()) {
                mkFile.mkdirs();
            }
            // 循环所有sheet
            for (int k = 0; k < wbk.getNumberOfSheets(); k++) {
                Sheet sheet = wbk.getSheet(k);
                // 共有多少行
                int imgNumber = sheet.getNumberOfImages();// 获得sheet所包含的图片数
                // 循环sheet的所有图片
                for (int i = 0; i < imgNumber; i++) {
                    Image image = sheet.getDrawing(i);
                    byte[] imageData = image.getImageData();
                    String fileName = image.getImageFile().getName().trim()
                            + ".jpg";
                    File file = new File(basePath+"/" + fileName);

                    os = new FileOutputStream(file);// 建立一个上传文件的输出流
                    os.write(imageData, 0, imageData.length);// 将文件写入服务器
                }
            }
        } catch (Exception e) {
            // TODO Auto-generated catch block
            e.printStackTrace();
        } finally {
            try {
                if (os != null) {
                    os.close();
                }
            } catch (IOException e) {
                // TODO Auto-generated catch block
                e.printStackTrace();
            }
        }
    }

    /*
     * 将excel图片文件保存到数据库
     */
    public void saveSheetImgByDB(InputStream is) throws ParseException,
            ClassNotFoundException, SQLException, IOException {
        Class.forName("com.mysql.jdbc.Driver");
        Connection conn = DriverManager.getConnection(
                "jdbc:mysql://localhost:3306/数据库名?characterEncoding=utf8", "root", "root");
        String INSERT_PICTURE = "insert into t_mypicture(name, photo) values (?, ?)";
        PreparedStatement ps = null;
        FileOutputStream os = null;
        try {
            Workbook wbk = Workbook.getWorkbook(is);
            // 循环所有sheet
            for (int k = 0; k < wbk.getNumberOfSheets(); k++) {
                Sheet sheet = wbk.getSheet(k);
                // 共有多少行
                int imgNumber = sheet.getNumberOfImages();// 获得sheet所包含的图片数
                // 循环sheet的所有图片
                for (int i = 0; i < imgNumber; i++) {
                    Image image = sheet.getDrawing(i);
                    byte[] imageData = image.getImageData();
                    String fileName = image.getImageFile().getName().trim()
                            + ".jpg";

                    conn.setAutoCommit(false);
                    ps = conn.prepareStatement(INSERT_PICTURE);
                    ps.setString(1, fileName);
                    ps.setBytes(2, imageData);
                    ps.executeUpdate();
                    conn.commit();
                }
            }
        } catch (Exception e) {
            // TODO Auto-generated catch block
            e.printStackTrace();
        } finally {
            try {
                if (os != null) {
                    os.close();
                }
            } catch (IOException e) {
                // TODO Auto-generated catch block
                e.printStackTrace();
            }
        }
    }

2.action方法调用:

ImportExcelUtil ieu = new ImportExcelUtil();
        ExcelForm excelForm = (ExcelForm) form;
        FormFile file = excelForm.getExcelFile();
        

        // 附件方式保存
        String basePath = request.getSession().getServletContext().getRealPath(
        "/")+"excelFile";
        try {
            ieu.saveSheetImgByFile(basePath,file.getInputStream());
        } catch (Exception e) {
            // TODO Auto-generated catch block
            e.printStackTrace();
        }

// 数据库方式保存
        try {
            ieu.saveSheetImgByDB(file.getInputStream());
        } catch (Exception e) {
            // TODO Auto-generated catch block
            e.printStackTrace();
        }

 转载自:http://blog.csdn.net/LIUJIMMY/archive/2010/01/25/5253978.aspx

分享到:
评论

相关推荐

    java 读取并保存excel中的图片.doc

    java 读取并保存excel中的图片

    java上传并读取excel工具类

    在Java编程中,处理Excel文件是一项常见的任务,特别是在数据导入导出、数据分析或者报表生成等场景。本篇文章将深入探讨如何使用Java...通过熟练掌握这些技术,你可以高效地在Java应用中实现Excel的上传和读取功能。

    java 读取excel内容 创建excel 插入文字及图片

    在Java编程中,处理Excel文件是一项常见的任务,无论是读取数据、创建新的Excel工作簿,还是向其中插入文字和图片,都有成熟的库可以支持。本篇文章将深入探讨如何使用Java来实现这些功能。 首先,我们需要引入一个...

    java中读取Excel例子

    本文将深入探讨如何使用Java来读取和写入Excel文件,以"java中读取Excel例子"为例,结合提供的文件"ExcellWriter.java",我们将详细讲解这个过程。 首先,Java中读取和写入Excel文件通常使用Apache POI库。Apache ...

    java读取excel数据!

    本示例中,我们关注的是如何使用Java来读取Excel表格中的数据,并将其保存,这通常涉及到Apache POI库的应用。Apache POI是一个开源项目,提供了处理Microsoft Office格式文档(如Excel)的能力。 首先,确保你已经...

    Java读取Word中的表格(Excel),并导出文件为Excel

    6. **保存Excel文件**: 最后,我们将创建的Excel工作簿写入到文件系统中: ```java FileOutputStream out = new FileOutputStream("path_to_excel_file.xlsx"); workbook.write(out); out.close(); workbook....

    java实现在Excel中插入图片

    总结起来,Java实现Excel中插入图片的核心步骤包括:导入Apache POI库,创建并操作工作簿和工作表,读取和创建图片对象,创建绘图工作表,设置图片位置,最后保存工作簿。在实际开发中,可能还需要处理图片格式转换...

    excel含图片导入 包含wps嵌入图片 java

    4. **图片导入技术**:在Java中导入Excel文件中的图片,需要理解Excel文件的内部结构,因为图片通常是以二进制形式存储的。Apache POI提供了API来处理这种二进制数据,开发者可以通过这些API来获取图片数据,并将其...

    java实现Excel的读取

    java实现对Excel的读取,并保存到数据库中!代码简洁有注释!!!

    java读取excel并存入数据库

    java从excel中读取数据并保存到sqlserver数据库中。 其中所需包需要自己下,一个是微软的sqlserver连接驱动包。还有一个是连接excel相关的包,网上都能找到。

    使用java进行EXCEL的读取和保存

    以上就是使用`jxl.jar`库在Java中读取和保存Excel文件的基本步骤。需要注意的是,此库仅支持较旧的`.xls`格式,对于`.xlsx`(Excel 2007及以后版本)文件,你需要使用其他的库,如Apache POI。此外,`jxl.jar`在处理...

    JAVA读取 excelJAVA读取 excel

    在Java编程环境中,读取Excel文件是一项常见的...Java读取Excel文件是一个相对复杂的任务,但通过Apache POI库,我们可以简化这个过程,高效地处理Excel数据。记住,始终确保正确处理文件流和资源,以避免潜在的问题。

    java读取Excel配套jar包

    总的来说,"java读取Excel配套jar包"提供了在Java环境中处理Excel文件的必要工具。通过合理利用这些库,开发者可以方便地进行数据的读取、解析、修改和保存,极大地扩展了Java在办公自动化领域的应用范围。

    Java通过POI读取Excel遍历数据,批量生成word文档

    本教程将重点讲解如何使用Apache POI库来读取Excel数据,并基于这些数据批量生成Word文档。Apache POI是一个开源项目,它允许Java开发者处理Microsoft Office格式的文件,如Excel(.xlsx或.xls)和Word(.docx)。 ...

    java读取excel文件jar包20181223

    Java读取Excel文件是开发过程中常见的任务,尤其是在处理数据导入导出、数据分析或者报表生成时。这个名为"java读取excel文件jar包20181223"的资源可能包含了一些帮助Java开发者实现这一功能的库。下面将详细讨论...

    JAVA-write-EXCEL.rar_copy excel java_java write_java读取_java读取Exc

    本主题主要关注如何使用Java来读取和写入Excel文件,特别是通过标题"JAVA-write-EXCEL.rar_copy excel java_java write_java读取_java读取Excel"所暗示的知识点。我们将探讨两个主要的API库:Apache POI和JExcelAPI...

    利用Java实现复制Excel工作表功能

    Java是一种广泛应用于企业开发的编程语言,而Excel则是办公软件中的王者。今天,我们将介绍如何使用Java实现复制Excel工作表功能,包括在同一个工作簿内复制工作表和在不同工作簿间复制工作表两种情况。 复制工作表...

    java实现自定义excel模板导出excel并可保存客户端和在线打开

    6. **保存Excel文件**:完成模板设计和数据填充后,使用`Workbook.write(OutputStream out)`方法将Workbook写入OutputStream,再将其保存为文件。这允许用户在客户端直接下载保存。 7. **在线打开**:如果希望用户...

    使用POI解析excel文件并写入数据库

    这个项目实现的功能是读取excel文件中的数据,解析并写入数据库。 读取的excel文件位于项目目录下的 excel\0805.xlsx 使用IntelliJ IDEA开发此项目 使用MYSQL查看数据库 在MYSQL中运行项目db目录下的sql文件,创建...

    利用java往excel中插入图片

    本篇文章将详细介绍如何利用Java和Apache POI库向Excel工作表中插入图片。 首先,我们需要理解Apache POI的工作原理。POI提供了一个名为HSSFPatriarch的类,它是Excel中的图形绘制容器,可以用于插入图片。对于....

Global site tag (gtag.js) - Google Analytics