HSSF方式:
package .lesson1;
import ;
import ;
import ;
import ;
import ;
import ;
import ;
import ;
import ;
import ;
import ;
import ;
import ;
import ;
import ;
import ;
import ;
import ;
public class ExcelUtilWithHSSF {
public static void main(String[] args) {
try {
getExcelAsFile("aaa");
} catch (FileNotFoundException e) {
();
} catch (IOException e) {
();
}
// try {
// CreateExcelDemo1();
// } catch (ParseException e) {
// ();
// }
}
/**
* 得到Excel,并解析内容
* @param file
* @throws FileNotFoundException
* @throws IOException
*/
public static void getExcelAsFile(String file) throws FileNotFoundException, IOException{
//1.得到Excel常用对象
// POIFSFileSystem fs = new POIFSFileSystem(new FileInputStream("d:/FTP/"));
POIFSFileSystem fs = new POIFSFileSystem(new FileInputStream("d:/FTP/"));
//2.得到Excel工作簿对象
HSSFWorkbook wb = new HSSFWorkbook(fs);
//3.得到Excel工作表对象
HSSFSheet sheet = (0);
//总行数
int trLength = ();
//4.得到Excel工作表的行
HSSFRow row = (0);
//总列数
int tdLength = ();
//5.得到Excel工作表指定行的单元格
HSSFCell cell = ((short)1);
//6.得到单元格样式
CellStyle cellStyle = ();
for(int i=0;i<trLength;i++){
//得到Excel工作表的行
HSSFRow row1 = (i);
for(int j=0;j<tdLength;j++){
//得到Excel工作表指定行的单元格
HSSFCell cell1 = (j);
/**
* 为了处理:Excel异常Cannot get a text value from a numeric cell
* 将所有列中的内容都设置成String类型格式
*/
if(cell1!=null){
(Cell.CELL_TYPE_STRING);
}
//获得每一列中的值
(()+"\t\t\t");
}
();
}
}
/**
* 创建Excel,并写入内容
*/
public static void CreateExcel(){
//1.创建Excel工作薄对象
HSSFWorkbook wb = new HSSFWorkbook();
//2.创建Excel工作表对象
HSSFSheet sheet = ("new Sheet");
//3.创建Excel工作表的行
HSSFRow row = (6);
//4.创建单元格样式
CellStyle cellStyle =();
// 设置这些样式
(HSSFColor.SKY_BLUE.index);
(HSSFCellStyle.SOLID_FOREGROUND);
(HSSFCellStyle.BORDER_THIN);
(HSSFCellStyle.BORDER_THIN);
(HSSFCellStyle.BORDER_THIN);
(HSSFCellStyle.BORDER_THIN);
(HSSFCellStyle.ALIGN_CENTER);
//5.创建Excel工作表指定行的单元格
(0).setCellStyle(cellStyle);
//6.设置Excel工作表的值
(0).setCellValue("aaaa");
(1).setCellStyle(cellStyle);
(1).setCellValue("bbbb");
//设置sheet名称和单元格内容
(0,"第一张工作表");
//设置单元格内容 ("单元格内容");
// 最后一步,将文件存到指定位置
try
{
FileOutputStream fout = new FileOutputStream("E:/");
(fout);
();
}
catch (Exception e)
{
();
}
}
/**
* 创建Excel的实例
* @throws ParseException
*/
public static void CreateExcelDemo1() throws ParseException{
List list = new ArrayList();
SimpleDateFormat df = new SimpleDateFormat("yyyy-mm-dd");
Student user1 = new Student(1, "张三", 16,true, ("1997-03-12"));
Student user2 = new Student(2, "李四", 17,true, ("1996-08-12"));
Student user3 = new Student(3, "王五", 26,false, ("1985-11-12"));
(user1);
(user2);
(user3);
// 第一步,创建一个webbook,对应一个Excel文件
HSSFWorkbook wb = new HSSFWorkbook();
// 第二步,在webbook中添加一个sheet,对应Excel文件中的sheet
HSSFSheet sheet = ("学生表一");
// 第三步,在sheet中添加表头第0行,注意老版本poi对Excel的行数列数有限制short
HSSFRow row = ((int) 0);
// 第四步,创建单元格,并设置值表头 设置表头居中
HSSFCellStyle style = ();
(HSSFCellStyle.ALIGN_CENTER); // 创建一个居中格式
HSSFCell cell = ((short) 0);
("学号");
(style);
cell = ((short) 1);
("姓名");
(style);
cell = ((short) 2);
("年龄");
(style);
cell = ((short) 3);
("性别");
(style);
cell = ((short) 4);
("生日");
(style);
// 第五步,写入实体数据 实际应用中这些数据从数据库得到,
for (int i = 0; i < (); i++)
{
row = ((int) i + 1);
Student stu = (Student) (i);
// 第四步,创建单元格,并设置值
((short) 0).setCellValue((double) ());
((short) 1).setCellValue(());
((short) 2).setCellValue((double) ());
((short)3).setCellValue(()==true?"男":"女");
cell = ((short) 4);
(new SimpleDateFormat("yyyy-mm-dd").format(stu
.getBirthday()));
}
// 第六步,将文件存到指定位置
try
{
FileOutputStream fout = new FileOutputStream("E:/");
(fout);
();
}
catch (Exception e)
{
();
}
}
}
XSSF方式:
package .lesson1;
import ;
import ;
import ;
import ;
import ;
import ;
import ;
import ;
import ;
import ;
import ;
import ;
import ;
import ;
import ;
import ;
import ;
import .;
import ;
import ;
import ;
import ;
import ;
import ;
import ;
import ;
import ;
public class ExcelUtilWithXSSF {
public static void main(String[] args) {
try {
getExcelAsFile("d:/FTP/系统报表.xls");
} catch (FileNotFoundException e) {
();
} catch (IOException e) {
();
} catch (InvalidFormatException e) {
();
}
// try {
// CreateExcelDemo1();
// } catch (ParseException e) {
// ();
// }
}
/**
* 得到Excel,并解析内容 对2007及以上版本 使用XSSF解析
* @param file
* @throws FileNotFoundException
* @throws IOException
* @throws InvalidFormatException
*/
public static void getExcelAsFile(String file) throws FileNotFoundException, IOException, InvalidFormatException{
// //1.得到Excel常用对象
// POIFSFileSystem fs = new POIFSFileSystem(new FileInputStream("d:/FTP/"));
// //2.得到Excel工作簿对象
// HSSFWorkbook wb = new HSSFWorkbook(fs);
InputStream ins = null;
Workbook wb = null;
ins=new FileInputStream(new File(file));
//ins= ().getResourceAsStream(filePath);
wb = (ins);
();
//3.得到Excel工作表对象
Sheet sheet = (0);
//总行数
int trLength = ();
//4.得到Excel工作表的行
Row row = (0);
//总列数
int tdLength = ();
//5.得到Excel工作表指定行的单元格
Cell cell = ((short)1);
//6.得到单元格样式
CellStyle cellStyle = ();
for(int i=5;i<trLength;i++){
//得到Excel工作表的行
Row row1 = (i);
for(int j=0;j<tdLength;j++){
//得到Excel工作表指定行的单元格
Cell cell1 = (j);
/**
* 为了处理:Excel异常Cannot get a text value from a numeric cell
* 将所有列中的内容都设置成String类型格式
*/
if(cell1!=null){
(Cell.CELL_TYPE_STRING);
}
if(j==5&&i<=10){
("1000");
}
//获得每一列中的值
(cell1+" ");
}
();
}
//将修改后的数据保存
OutputStream out = new FileOutputStream(file);
(out);
}
/**
* 创建Excel,并写入内容
*/
public static void CreateExcel(){
//1.创建Excel工作薄对象
HSSFWorkbook wb = new HSSFWorkbook();
//2.创建Excel工作表对象
HSSFSheet sheet = ("new Sheet");
//3.创建Excel工作表的行
HSSFRow row = (6);
//4.创建单元格样式
CellStyle cellStyle =();
// 设置这些样式
(HSSFColor.SKY_BLUE.index);
(HSSFCellStyle.SOLID_FOREGROUND);
(HSSFCellStyle.BORDER_THIN);
(HSSFCellStyle.BORDER_THIN);
(HSSFCellStyle.BORDER_THIN);
(HSSFCellStyle.BORDER_THIN);
(HSSFCellStyle.ALIGN_CENTER);
//5.创建Excel工作表指定行的单元格
(0).setCellStyle(cellStyle);
//6.设置Excel工作表的值
(0).setCellValue("aaaa");
(1).setCellStyle(cellStyle);
(1).setCellValue("bbbb");
//设置sheet名称和单元格内容
(0,"第一张工作表");
//设置单元格内容 ("单元格内容");
// 最后一步,将文件存到指定位置
try
{
FileOutputStream fout = new FileOutputStream("E:/");
(fout);
();
}
catch (Exception e)
{
();
}
}
/**
* 创建Excel的实例
* @throws ParseException
*/
public static void CreateExcelDemo1() throws ParseException{
List list = new ArrayList();
SimpleDateFormat df = new SimpleDateFormat("yyyy-mm-dd");
Student user1 = new Student(1, "张三", 16,true, ("1997-03-12"));
Student user2 = new Student(2, "李四", 17,true, ("1996-08-12"));
Student user3 = new Student(3, "王五", 26,false, ("1985-11-12"));
(user1);
(user2);
(user3);
// 第一步,创建一个webbook,对应一个Excel文件
HSSFWorkbook wb = new HSSFWorkbook();
// 第二步,在webbook中添加一个sheet,对应Excel文件中的sheet
HSSFSheet sheet = ("学生表一");
// 第三步,在sheet中添加表头第0行,注意老版本poi对Excel的行数列数有限制short
HSSFRow row = ((int) 0);
// 第四步,创建单元格,并设置值表头 设置表头居中
HSSFCellStyle style = ();
(HSSFCellStyle.ALIGN_CENTER); // 创建一个居中格式
HSSFCell cell = ((short) 0);
("学号");
(style);
cell = ((short) 1);
("姓名");
(style);
cell = ((short) 2);
("年龄");
(style);
cell = ((short) 3);
("性别");
(style);
cell = ((short) 4);
("生日");
(style);
// 第五步,写入实体数据 实际应用中这些数据从数据库得到,
for (int i = 0; i < (); i++)
{
row = ((int) i + 1);
Student stu = (Student) (i);
// 第四步,创建单元格,并设置值
((short) 0).setCellValue((double) ());
((short) 1).setCellValue(());
((short) 2).setCellValue((double) ());
((short)3).setCellValue(()==true?"男":"女");
cell = ((short) 4);
(new SimpleDateFormat("yyyy-mm-dd").format(stu
.getBirthday()));
}
// 第六步,将文件存到指定位置
try
{
FileOutputStream fout = new FileOutputStream("E:/");
(fout);
();
}
catch (Exception e)
{
();
}
}
}
注意:
修改Excel中的某个内容:
("1000");
保存修改后的Excel文件:
OutputStream out = new FileOutputStream(file);
(out);
轉自【/he90227/article/details/37563497】