JAVA-Excel文件操作
使用环境:JAVA 1.8
一、安装
1.下载Poi包
当前最新稳定版本为3.14。下载poi-bin-3.14.zip即可。
2.将下载下来的压缩包解压,将其中的所有jar文件,都复制到JRE路径中。
我的路径是D:\Program Files\Java\jdk1.8.0_40\jre\lib\ext
3.新建NetBeans程序,便可使用。
二、使用
具体使用可以参考压缩包中的doc文件夹里面的帮助文档。
这里简单列举一下应用:
import java.io.File;
import java.io.FileInputStream;
import java.io.FileOutputStream;
import java.io.IOException;
import java.text.SimpleDateFormat;
import java.util.HashMap;
import java.util.Map;
import javax.swing.JOptionPane;
import org.apache.poi.EncryptedDocumentException;
import org.apache.poi.openxml4j.exceptions.InvalidFormatException;
import org.apache.poi.ss.usermodel.Row;
import org.apache.poi.ss.usermodel.Sheet;
import org.apache.poi.ss.usermodel.Workbook;
import org.apache.poi.ss.usermodel.WorkbookFactory;
import org.apache.poi.xssf.usermodel.XSSFWorkbook; public class ExcelLog {
public ExcelLog(int index) {
createNewBook();
}
//新建工作表
private void createNewBook() {
try {
String path = "D:\\test.xlsx";
File f = new File(path);
File dir = f.getParentFile();
if (!dir.exists()) {//如果文件路径不存在,则创建路径
dir.mkdirs();
}
if (!f.exists()) {//如果文件不存在,则新建文件
Workbook wb = new XSSFWorkbook(); //.xlsx
Sheet sheet = wb.createSheet("Test Log"); //新建Sheet
Row row = sheet.createRow(0); //写一行数据
String[] header = {"COL1", "COL2", "COL3", "COL4", "COL5"};
for (int i = 0; i < header.length; i++) {
row.createCell(i).setCellValue(header[i]);
} //写入文件
try (FileOutputStream fileOut = new FileOutputStream(path)) {
wb.write(fileOut);
wb.close();
}
}
} catch (IOException ex) {
JOptionPane.showMessageDialog(null, "无法写入Excel文件:" + ex.getMessage());
System.exit(-1);
}
} //Sheet表的行数
private int getRowCount() {
try (FileInputStream fileInput = new FileInputStream(path)) {
Workbook wb = WorkbookFactory.create(fileInput);
Sheet sheet = wb.getSheetAt(0);
return sheet.getPhysicalNumberOfRows();
} catch (IOException | InvalidFormatException | EncryptedDocumentException ex) {
JOptionPane.showMessageDialog(null, "无法读取Excel文件:" + ex.getMessage());
System.exit(-1);
return 0;
}
} //写一行数据
private void writeLine(String[] items) {
try{
Workbook wb = WorkbookFactory.create(new FileInputStream(path));
Sheet sheet = wb.getSheetAt(0);
int rowIndex = this.getRowCount();
Row row = sheet.createRow(rowIndex);
for (int i = 0; i < items.length; i++) {
row.createCell(i).setCellValue(items[i]);
}
//写入文件
try(FileOutputStream fileOut = new FileOutputStream(path);){
wb.write(fileOut);
}
wb.close();
} catch (IOException | InvalidFormatException | EncryptedDocumentException ex) {
ex.printStackTrace();
JOptionPane.showMessageDialog(null, "无法写入Excel文件:" + ex.getMessage());
System.exit(-1);
}
} }
JAVA-Excel文件操作的更多相关文章
- java常见文件操作
收集整理的java常见文件操作,方便平时使用: //1.创建文件夹 //import java.io.*; File myFolderPath = new File(str1); try { if ( ...
- 对Aspose.Cells Excel文件操作的扩展
工作中对Excel操作的需求很是常见,今天其他项目组的同事在进行Excel数据导入时,使用Aspose.Cells Excel 遇到了些问题. 刚好闲来不忙,回想自己用过的Excel文件操作,有NPO ...
- Java api 入门教程 之 JAVA的文件操作
I/O类使用 由于在IO操作中,需要使用的数据源有很多,作为一个IO技术的初学者,从读写文件开始学习IO技术是一个比较好的选择.因为文件是一种常见的数据源,而且读写文件也是程序员进行IO编程的一个基本 ...
- 【个人使用.Net类库】(3)Excel文件操作类(基于NPOI)
Web开发工作中经常要根据业务的需要生成对应的报表.经常采用的方法如下: 将DataTable导出至Excel文件; 读取模板Excel文件; 修改模板Excel文件对应的内容. 因此,便想到封装一个 ...
- java中文件操作的工具类
代码: package com.lky.pojo; import java.io.BufferedReader; import java.io.BufferedWriter; import java. ...
- java csv 文件 操作类
一个CSV文件操作类,功能比较齐全: package tool; import java.io.BufferedReader; import java.io.BufferedWriter; impor ...
- java中文件操作《一》
在日常的开发中我们经常会碰到对文件的操作,在java中对文件的操作都在java.io包下,这个包下的类有File.inputStream.outputStream.FileInputStream.Fi ...
- java IO文件操作简单基础入门例子,IO流其实没那么难
IO是JAVASE中非常重要的一块,是面向对象的完美体现,深入学习IO,你将可以领略到很多面向对象的思想.今天整理了一份适合初学者学习的简单例子,让大家可以更深刻的理解IO流的具体操作. 1.文件拷贝 ...
- Java常用文件操作-2
上篇文章记录了常用的文件操作,这里记录下通过SSH服务器操作Linux服务器的指定路径下的文件. 这里用到了第三方jar包 jsch-0.1.53.jar, jsch-api 1.删除服务器上指定路径 ...
- Java常用文件操作-1
在我们的实际工作中经常会用到的文件操作,再此,将工作中碰到的做一个记录,以便日后查看. 1.复制文件夹到新文件夹下 /** * 复制文件夹下所有文件到指定路径 *@param oldPath *@pa ...
随机推荐
- POJ - 2253 Frogger(Dijkstra变形题)
题意: 题目撰写者的英语真是艰难晦涩,看了别人题解,才知道这题题意. 两个forger 一个froger 要蹦到另外一个froger处,他们的最短距离是这样定义的 : The frog distanc ...
- hdu 2039 三角形
题意: 判断三条线段能否组成三角形 解法: 坑!记得用float,用int直接WA. 1: #include<stdlib.h> 2: #include<stdio.h> 3: ...
- 第5.5次Scrum会议
会议信息 时间:2016.10.25 21:30 时长:0.5h 地点:大运村1号公寓5楼楼道 类型:日常Scrum会议 会议内容 鉴于团队推进受阻,原PM 邓 与 原后端 冯 协商后决定之后一段时间 ...
- java编程思想-java中的并发(二)
二.共享受限资源 有了并发就可以同时做多件事情了.但是,两个或多个线程彼此互相干涉的问题也就出现了.如果不防范这种冲突,就可能发生两个线程同时试图访问同一个银行账户,或向同一个打印机打印,改变同一个值 ...
- Axure7.0汉化方法
下载汉化包 AxureRP7CN_汉化包.rar 首先退出正在运行中的 Axure (如果您正在使用). 将 汉化包.rar 文件解压, 得到 lang 文件夹, 然后将其复制到 Axure 安装目 ...
- ecshop网站搬家缓存无法更新
问题描述: 1.后台产品列表能改,数据也能看到,前端就是不显示 2.缓存无法删除 3.网上其他方法都试过,还是不行 症状:是因为缓存无法删除,无法更新,只需要能重新更新缓存文件即可.网站搬家丢失tem ...
- yourphp添加KindEditor编辑器
<tr> <td align="right">故障描述</td> <script charset="utf-8" sr ...
- Linux下MySQL忘记密码
系统:CentOS6.6 64位 参考文档(截图请看原网址): Linux下MySQL忘记root密码怎么办_百度经验 http://jingyan.baidu.com/article/1709ad8 ...
- osharp3使用经验:整合DbContextScope 文章 1
osharp3的事务处理是跳过savechangeing方法来控制的,没有DbContextScope专业 DbContextScope管理dbcontext的优劣本文不讨论 整合过程: 1.在.Da ...
- centos 7.0 安装vim
用的最小化 安装 看看跟VI命令有何区别 后面会记录使用经验 [root@localhost conf]# yum -y install vim 已加载插件:fastestmirror base | ...