- 浏览: 428676 次
- 性别:
- 来自: 上海
文章分类
- 全部博客 (170)
- java (77)
- javascript (5)
- jsp (1)
- servlet (6)
- struts (8)
- hibernate (3)
- spring (4)
- ajax (5)
- jquery (3)
- apache cxf (0)
- ext.js (1)
- hadoop (0)
- android (0)
- html5 (2)
- linux (5)
- flex (1)
- tomcat (1)
- jboss (0)
- nginx (0)
- mysql (16)
- sql server (3)
- oracle (4)
- div+css (0)
- mybatis (4)
- design patterns (22)
- xml (2)
- postgresql (3)
- velocity (1)
- freemarker (1)
- kendo-ui (2)
- ibatis (1)
- socket (1)
- C and C++ (1)
- C# (2)
- 程序设计----算法 (0)
- jersey (1)
- dd (0)
- perl (1)
- shell (0)
最新评论
-
书策稠浊:
兄弟,这tm是Java?
java调用百度地图和谷歌地图 -
fengyunlouyanyu:
jquery----删除指定id的div下的img -
yangjianzhouctgu:
Neoman 写道hi,我看你引入了kendo.web.min ...
kendo-ui中kendoGrid的用法 -
Neoman:
hi,我看你引入了kendo.web.min.js 这个js, ...
kendo-ui中kendoGrid的用法 -
yangjianzhouctgu:
llscp 写道这是JS吧...对的呀
java调用百度地图和谷歌地图
我用过的操作Excel的插件有jxl和poi,其中jxl只对office 2007以前的版本提供支持,无法操作
office 2007及以后的版本。poi插件是apache 基金会的开源项目,对微软的office提供了很好的
支持。
下面以一组实例来说明poi如何操作Excel。
Constants.java
FileUtil.java
Test.java
原始Excel文件
处理之后得到的Excel文件
office 2007及以后的版本。poi插件是apache 基金会的开源项目,对微软的office提供了很好的
支持。
下面以一组实例来说明poi如何操作Excel。
Constants.java
package com.utils; /** * 程序中用到的一些常量 * @author yangjianzhou * */ public class Constants { public static final String IN_FILE_PATH="WebRoot/readXLS"; public static final String OUT_FILE_PATH="WebRoot/writeXLS"; public static final String IN_FILE_PATH_MAX="WebRoot/readXLSMax"; public static final String FILE_SUFFIX=".xls"; }
FileUtil.java
package com.utils; import java.io.File; import java.io.FileInputStream; import java.io.FileOutputStream; import java.io.OutputStream; import java.util.ArrayList; import java.util.List; import org.apache.poi.xssf.usermodel.XSSFCell; import org.apache.poi.xssf.usermodel.XSSFRow; import org.apache.poi.xssf.usermodel.XSSFSheet; import org.apache.poi.xssf.usermodel.XSSFWorkbook; public class FileUtil { /** * 获取指定路径下的所有excel文件名 * @param filePath * @return */ public List<String> getAllFileName(String filePath){ File directory = new File(filePath); File [] files = directory.listFiles(); List<String> fileNameList = new ArrayList<String>(); for(int i =0;i<files.length;i++){ int index = files[i].getName().indexOf(Constants.FILE_SUFFIX); if(index>=0){ fileNameList.add(filePath+"/"+files[i].getName()); } } return fileNameList; } /** * 得到指定文件名的文件 * @param fileNameList * @return */ public List<File> getAllFiles(List<String> fileNameList){ List<File> fileList = new ArrayList<File>(); for(int i =0;i<fileNameList.size();i++){ File file = new File(fileNameList.get(i)); fileList.add(file); } return fileList; } /** * 读取指定文件,经过一些处理,并将数据写入一个新文件 * @param file * @param filePath */ public void readAndWriteFile(File file,String filePath) { FileInputStream fileInputStream = null; try{ fileInputStream = new FileInputStream(file); XSSFWorkbook rXSSWorkbook = new XSSFWorkbook(fileInputStream); int sheetNumber = rXSSWorkbook.getNumberOfSheets(); for(int i=0;i<sheetNumber;i++){ XSSFSheet rXSSFSheet = rXSSWorkbook.getSheetAt(i); String sheetName = rXSSFSheet.getSheetName(); System.out.println(sheetName); int rowNumber = rXSSFSheet.getPhysicalNumberOfRows(); XSSFRow rXSSFRow0 = rXSSFSheet.getRow(0); XSSFWorkbook wXSSFWorkbook = new XSSFWorkbook(); XSSFSheet wSheet = wXSSFWorkbook.createSheet(); XSSFRow wXSSFRow0 = wSheet.createRow(0); XSSFCell wXSSFCell0 = wXSSFRow0.createCell(0); XSSFCell wXSSFCell1 = wXSSFRow0.createCell(1); XSSFCell wXSSFCell2 = wXSSFRow0.createCell(2); XSSFCell wXSSFCell3 = wXSSFRow0.createCell(3); wXSSFCell0.setCellValue(rXSSFRow0.getCell(0).getStringCellValue()); wXSSFCell1.setCellValue("最大"); wXSSFCell2.setCellValue("平均"); wXSSFCell3.setCellValue("最小"); int columnNumber = rXSSFRow0.getPhysicalNumberOfCells(); int count = (columnNumber-4)/3; System.out.println(count); for(int j=1;j<rowNumber;j++){ XSSFRow rXSSFRowN = rXSSFSheet.getRow(j); for(int n=1;n<=count;n++){ XSSFRow wXSSFRowN = wSheet.createRow((j-1)*count+n); XSSFCell wXSSFCellN0 = wXSSFRowN.createCell(0); XSSFCell wXSSFCellN1 = wXSSFRowN.createCell(1); XSSFCell wXSSFCellN2 = wXSSFRowN.createCell(2); XSSFCell wXSSFCellN3 = wXSSFRowN.createCell(3); System.out.println(rXSSFRowN.getCell(0).getStringCellValue()+(n-1)*5+"分"); wXSSFCellN0.setCellValue(rXSSFRowN.getCell(0).getStringCellValue()+(n-1)*5+"分"); wXSSFCellN1.setCellValue(rXSSFRowN.getCell((n-1)*3+1).getNumericCellValue()); wXSSFCellN2.setCellValue(rXSSFRowN.getCell((n-1)*3+2).getNumericCellValue()); wXSSFCellN3.setCellValue(rXSSFRowN.getCell((n-1)*3+3).getNumericCellValue()); } } String fileName = file.getName().substring(0, file.getName().length()-4)+"---"+sheetName+Constants.FILE_SUFFIX; OutputStream outputStream = new FileOutputStream(new File(filePath+"/"+fileName)); wXSSFWorkbook.write(outputStream); outputStream.close(); } fileInputStream.close(); }catch (Exception e) { e.printStackTrace(); }finally{ if(fileInputStream!=null){ try{ fileInputStream.close(); }catch (Exception e) { e.printStackTrace(); } } } } public void readAndWriteFileMax(File file,String filePath){ FileInputStream fileInputStream = null; try{ fileInputStream = new FileInputStream(file); XSSFWorkbook rXSSWorkbook = new XSSFWorkbook(fileInputStream); int sheetNumber = rXSSWorkbook.getNumberOfSheets(); for(int i=0;i<sheetNumber;i++){ XSSFSheet rXSSFSheet = rXSSWorkbook.getSheetAt(i); String sheetName = rXSSFSheet.getSheetName(); int rowNumber = rXSSFSheet.getPhysicalNumberOfRows(); XSSFRow rXSSFRow0 = rXSSFSheet.getRow(0); XSSFWorkbook wXSSFWorkbook = new XSSFWorkbook(); XSSFSheet wSheet = wXSSFWorkbook.createSheet(); XSSFRow wXSSFRow0 = wSheet.createRow(0); XSSFCell wXSSFCell0 = wXSSFRow0.createCell(0); XSSFCell wXSSFCell1 = wXSSFRow0.createCell(1); wXSSFCell0.setCellValue(rXSSFRow0.getCell(0).getStringCellValue()); wXSSFCell1.setCellValue("最大"); int columnNumber = rXSSFRow0.getPhysicalNumberOfCells(); int count = columnNumber-4; System.out.println(count); for(int j=1;j<rowNumber;j++){ XSSFRow rXSSFRowN = rXSSFSheet.getRow(j); for(int n=1;n<=count;n++){ XSSFRow wXSSFRowN = wSheet.createRow((j-1)*count+n); XSSFCell wXSSFCellN0 = wXSSFRowN.createCell(0); XSSFCell wXSSFCellN1 = wXSSFRowN.createCell(1); wXSSFCellN0.setCellValue(rXSSFRowN.getCell(0).getStringCellValue()+(n-1)*5+"分"); wXSSFCellN1.setCellValue(rXSSFRowN.getCell(n).getNumericCellValue()); } } String fileName = file.getName().substring(0, file.getName().length()-4)+"---"+sheetName+Constants.FILE_SUFFIX; OutputStream outputStream = new FileOutputStream(new File(filePath+"/"+fileName)); wXSSFWorkbook.write(outputStream); outputStream.close(); } fileInputStream.close(); }catch (Exception e) { e.printStackTrace(); }finally{ if(fileInputStream!=null){ try{ fileInputStream.close(); }catch (Exception e) { e.printStackTrace(); } } } } }
Test.java
package com.test; import java.io.File; import java.io.IOException; import java.util.List; import com.utils.Constants; import com.utils.FileUtil; public class Test { public static void main(String[] args) throws IOException { FileUtil fu = new FileUtil(); List<String> fileNameList = fu.getAllFileName(Constants.IN_FILE_PATH); List<File> fileList = fu.getAllFiles(fileNameList); for(int i =0;i<fileList.size();i++){ fu.readAndWriteFile(fileList.get(i), Constants.OUT_FILE_PATH); } List<String> fileNameListMax = fu.getAllFileName(Constants.IN_FILE_PATH_MAX); List<File> fileListMax = fu.getAllFiles(fileNameListMax); for(int i =0;i<fileListMax.size();i++){ fu.readAndWriteFileMax(fileListMax.get(i), Constants.OUT_FILE_PATH); } } }
原始Excel文件
处理之后得到的Excel文件
发表评论
-
spring boot应用测试框架介绍
2018-07-19 14:44 751个人原创博客:spring boot应用测试框架介绍 -
可执行jar包的配置与运行
2017-06-04 19:42 1007spring boot项目可以以jar包的形式执行运行。s ... -
多线程并发
2016-05-21 23:49 0Splitter.on('|').trimResults(). ... -
jdk动态代理实现原理
2016-05-09 23:12 773jdk的动态代理即使用反射来实现,具体由Proxy、Invoc ... -
spring常见注解
2016-05-01 23:33 12321.Autowired 通过spring的依赖注入功能来 ... -
spring常见配置作用
2016-04-29 23:08 933一般应用中常见spring的 ... -
数据来自两个系统时的内存分页算法
2016-04-24 23:12 842业务数据来自a-app与b-app,其中a-app中数据的业务 ... -
linux下java web开发环境搭建
2016-04-10 14:09 1134一般的java web开发涉及到的开发工具有:jdk、tomc ... -
linux下md5sum和DigestUtils.md5Hex的关系
2015-12-19 22:30 8525本文对linux下md5sum命令和java中DigestUt ... -
基于jersey的web service
2015-11-22 22:55 1007本文是基于jersey的web service 的两个小例子, ... -
面试总结----spring
2015-05-19 22:17 911spring在面试中经常被 ... -
面试总结----多线程
2015-05-18 22:10 897面试过程中,多线程被问到的概率非常大,差不多都会问的。 下面 ... -
面试总结----java虚拟机
2015-05-17 23:20 741在面试过程中,java虚拟机被问到的概率非常大,应该是每场面试 ... -
面试总结----java集合
2015-05-17 11:57 676春节刚过,打算换一份工作,于是就开始了一段准备面试的生活,准备 ... -
json串与对象之间转换的几种实现方式
2015-01-24 18:56 1878这里使用了gson,fastjson,jackson,json ... -
google关于事件的生产者消费者模式实现例子
2015-01-24 11:28 976google使用生产者/消费者模式实现了事件的产生传播处理过程 ... -
图形化显示---冒泡排序
2014-12-05 22:17 917代码: package com.thread.singal ... -
多线程----wait/notify
2014-11-06 22:06 686线程同步:两个线程依次对同一变量进行操作。 packag ... -
多线程-----阻塞队列
2014-11-05 22:43 850使用一个线程将一个指定目录下面的所有文件放在一个阻塞队列中,用 ... -
迷宫的最短路径
2014-08-19 00:31 3763代码如下: package com.chapterO ...
相关推荐
例如,在开发过程中,开发者可能需要频繁地读取或写入Excel文件,这时就可以利用POI插件来实现更高效的文件处理功能。常见的POI插件可以实现以下功能: - **快速读取Excel文件**:支持.xls和.xlsx两种格式。 - **...
本文将详细介绍如何利用SpringMVC与Apache POI进行Excel文件的导入操作。 #### 二、技术栈 - **Java版本**:JDK 7 - **服务器**:Tomcat 7.x - **框架**:Spring 4.1.8 - **库**:Apache POI #### 三、关键概念与...
【百度POI爬取插件】是一款专门针对百度地图POI(Point of Interest,兴趣点)数据进行抓取和分析的工具。它可以帮助用户高效地获取到百度地图上的各种地理位置信息,如商家、餐馆、酒店等各类兴趣点的名称、地址、...
通过学习和理解这些示例,你可以更好地掌握如何利用`jxls-poi`从JSON数据生成Excel文件。 总的来说,`jxls-poi`是Java开发者处理Excel数据的强大工具,尤其适用于需要频繁从后端生成定制化报表的场景。结合JSON数据...
### POI 操作 Excel 的基本概念与应用场景 **Apache POI** 是一个流行的 Java 库,用于读取、写入 Microsoft Office 格式的文件,如 Word(`.doc`)、Excel(`.xls` 和 `.xlsx`)等。在 Java 开发中,POI 库特别...
本项目是关于如何在SpringMvc中利用POI库来实现Excel文件的导入功能,这在数据录入、批量处理或数据分析场景中非常常见。 首先,我们需要理解SpringMvc中的控制器(Controller)如何接收文件上传请求。在描述中提到...
在这个场景中,我们看到一个关于如何使用Java编程语言实现此功能的资源包:“利用poi+itextpdf进行word转pdf.rar”。这个压缩包包含源码、依赖库以及转换效果的示例,表明它提供了一种无需额外插件的解决方案。下面...
NPOI是一个强大的.NET库,专门用于操作Microsoft Office文件,特别是Excel文档。它为开发者提供了一个方便、高效的接口,可以在不依赖Microsoft Office...利用NPOI,你可以更加专注于业务逻辑,而不是繁琐的文件操作。
结合这两个主题,你不仅可以利用jQuery在网页上动态地展示和处理Excel数据,还可以通过Apache POI在服务器端生成或读取Excel文件,进行数据交换。将这两者结合,可以构建出强大的Web应用程序,实现数据的上传、下载...
本教程将重点讲解如何利用Apache POI来实现一个表格导入插件,特别是针对Excel文件的操作。 **一、Apache POI简介** Apache POI 提供了HSSF(Horrible Spreadsheet Format)和XSSF(XML Spreadsheet Format)两个...
1. **Excel操作**:Apache POI提供了HSSF(Horrible Spreadsheet Format)用于处理旧版的.xls格式,而XSSF(XML Spreadsheet Format)则用于.xlsx格式。通过这些API,你可以创建工作簿、工作表,插入单元格,设置...
为了实现这个功能,我们可以利用各种库和插件。这里,我们将深入探讨如何使用Java插件和组件来读取和写入Excel文件。 首先,最常用的Java库之一是Apache POI。Apache POI是一个开源项目,提供了API来处理Microsoft ...
本文将详细讲解如何利用Java Web技术实现这样的功能,主要涉及Maven构建工具、前端PDF插件以及后台SpringMVC框架的运用。 首先,我们需要理解Maven作为项目构建工具的角色。Maven是一个基于项目对象模型(Project ...
这个插件是基于 Java 的 Apache POI 库构建的,POI 是一个流行的库,用于处理 Microsoft Office 格式,尤其是 Excel。 在 Scala 中使用 spark-excel 插件,可以极大地简化处理 Excel 数据的任务。首先,你需要将 ...
这里的描述可能是指利用POI库作为例子,展示如何进行文件处理,尽管POI不是处理JAR的标准工具。 在Java开发中,JAR(Java Archive)文件是用于打包类文件、资源和元数据的容器,通常用于分发和运行Java应用程序或库...
本文将深入探讨使用Apache POI库在Java环境中处理Excel文件,特别是涉及复杂样式和处理海量数据的场景。 Apache POI是Apache软件基金会的一个开源项目,主要为Microsoft Office格式提供读写支持,包括Excel、Word和...
4. 当需要下载时,从“t_student”表中查询数据,同样利用Apache POI生成Excel文件。 5. 将生成的Excel文件发送回给用户下载。 在实际应用中,还需要考虑性能优化、错误处理、安全性(防止SQL注入等)以及用户体验...
### Oracle-POI上传:利用POI插件实现EXCEL与ORACLE的上传与下载 在实际工作中,经常需要将Excel文件中的数据批量导入到Oracle数据库中,这不仅可以提高工作效率,还能减少人为错误。Apache POI库是Java编程语言的...