package com.kero99.ygc.excel;
import java.io.File;
import java.io.FileOutputStream;
import java.io.IOException;
import org.apache.poi.hssf.usermodel.HSSFCell;
import org.apache.poi.hssf.usermodel.HSSFCellStyle;
import org.apache.poi.hssf.usermodel.HSSFFont;
import org.apache.poi.hssf.usermodel.HSSFRow;
import org.apache.poi.hssf.usermodel.HSSFSheet;
import org.apache.poi.hssf.usermodel.HSSFWorkbook;
import org.apache.poi.xssf.usermodel.XSSFCellStyle;
//Excel 导出 HSSF -->支持97-2013版本 默认版本
//需要的jar包
/**
* commons-io-2.2.jar
* dom4j-1.6.1.jar
* jxl.jar
* poi-3.11-20141221.jar
* poi-examples-3.11-20141221.jar
* poi-excelant-3.11-20141221.jar
* poi-ooxml-3.11-20141221.jar
* poi-ooxml-schemas-3.11-20141221.jar
* poi-scratchpad-3.11-20141221.jar
* xmlbeans-2.6.0.jar
*/
public class PoiExpExcel {
public static void main(String[] args) {
//表头标题
String[] title={"id","name","sex"};
//创建Excel工作簿
HSSFWorkbook workbook=new HSSFWorkbook();
//创建一个工作表sheet 默认是表名是sheet0
HSSFSheet sheet=workbook.createSheet("ygc开发表");
//设置默认行高
sheet.setDefaultRowHeight((short)(3 * 256));
//创建字体设置字体为宋体
HSSFFont font = workbook.createFont();
font.setFontName("宋体");
//font.setBoldweight(HSSFFont.BOLDWEIGHT_BOLD);
//设置字体高度
font.setFontHeightInPoints((short) 20);
HSSFCellStyle style = workbook.createCellStyle();
//style.setFont(font);
//设置自动换行
style.setWrapText(true);
//设置对齐方式为居中对齐
style.setAlignment(XSSFCellStyle.ALIGN_CENTER);
//设置单元格内容垂直对其方式为居中
style.setVerticalAlignment(XSSFCellStyle.VERTICAL_CENTER);
//创建表的第一行
HSSFRow row=sheet.createRow(0);
//创建单元格
HSSFCell cell=null;
//循环为第一行三个单元格插入三个标题
for(int i=0;i
cell=row.createCell(i);
cell.setCellStyle(style);
cell.setCellValue(title[i]);
}
//追加数据 1是第二行
for(int i=1;i<=10;i++){
HSSFRow nextrow=sheet.createRow(i);
HSSFCell cell2=nextrow.createCell(0);
cell2.setCellStyle(style);
cell2.setCellValue("a"+i);
cell2=nextrow.createCell(1);
cell2.setCellValue("user"+i);
cell2.setCellStyle(style);
cell2=nextrow.createCell(2);
cell2.setCellValue("男");
cell2.setCellStyle(style);
}
//创建一个文件
File file=new File("e:/测试文件.xls");
try {
file.createNewFile();
//将Excel存盘
FileOutputStream stream=new FileOutputStream(file);
workbook.write(stream);
stream.close();
} catch (IOException e) {
e.printStackTrace();
}
}
}
//Excel导入HSSF
package com.kero99.ygc.excel;
import java.io.File;
import java.io.IOException;
import org.apache.commons.io.FileUtils;
import org.apache.poi.hssf.usermodel.HSSFCell;
import org.apache.poi.hssf.usermodel.HSSFRow;
import org.apache.poi.hssf.usermodel.HSSFSheet;
import org.apache.poi.hssf.usermodel.HSSFWorkbook;
public class PoiReadExcel {
public static void main(String[] args) {
File file = new File("e:/测试文件.xls");
//创建Excel,读取文件内容
try {
HSSFWorkbook workbook =
new HSSFWorkbook(FileUtils.openInputStream(file));
//创建Excel,读取文件内容
// HSSFWorkbook workbook=new HSSFWorkbook(new FileInputStream(new File("e:/测试文件.xls")));
//获取第一个工作表workbook.getSheet("ygc开发表");
// HSSFSheet sheet=workbook.getSheet("ygc开发表");
//第二种获取方式通过index 获取第一个表
HSSFSheet sheet = workbook.getSheetAt(0);
int firstRowNum=0;
//获取表中最后一行
int lastRowNum = sheet.getLastRowNum();
for(int i=firstRowNum;i<=lastRowNum;i++){
HSSFRow row = sheet.getRow(i);
//获取当前最后单元格列号
int lastCellNum = row.getLastCellNum();
for(int j=0;j
HSSFCell cell = row.getCell(j);
String value = cell.getStringCellValue();
System.out.print(value + " ");//注意value后面的空格
}
System.out.println();
}
} catch (IOException e) {
e.printStackTrace();
}
}
}
//XSSF 导入 支持 2017版本
package com.kero99.ygc.excel;
import java.io.File;
import java.io.FileOutputStream;
import java.io.IOException;
import org.apache.poi.ss.usermodel.Cell;
import org.apache.poi.ss.usermodel.Row;
import org.apache.poi.ss.usermodel.Sheet;
import org.apache.poi.xssf.usermodel.XSSFWorkbook;
public class JxlExpExcel {
/**
* XSSF兼容高版本Excel文件 eg:2017版本
* 默认一般创建 HSSF 1997-2013版本
* @param args
*/
public static void main(String[] args) {
//表头标题
String[] title={"id","name","sex"};
//创建Excel工作簿
XSSFWorkbook workbook=new XSSFWorkbook();
//创建一个工作表sheet 默认是表名是sheet0
Sheet sheet=workbook.createSheet("ygc开发表");
//创建表的第一行
Row row=sheet.createRow(0);
//创建单元格
Cell cell=null;
//循环为第一行三个单元格插入三个标题
for(int i=0;i//追加数据 1是第二行
for(int i=1;i<=10;i++){
Row nextrow=sheet.createRow(i);
Cell cell2=nextrow.createCell(0);
cell2.setCellValue("a"+i);
cell2=nextrow.createCell(1);
cell2.setCellValue("user"+i);
cell2=nextrow.createCell(2);
cell2.setCellValue("男");
}
//创建一个文件
File file=new File("e:/测试文件.xlsx");
try {
file.createNewFile();
//将Excel存盘
FileOutputStream stream=new FileOutputStream(file);
workbook.write(stream);
stream.close();
} catch (IOException e) {
e.printStackTrace();
}
}
}
/XFFS导入
package com.kero99.ygc.excel;
import java.io.File;
import java.io.IOException;
import org.apache.commons.io.FileUtils;
import org.apache.poi.ss.usermodel.Cell;
import org.apache.poi.ss.usermodel.Row;
import org.apache.poi.ss.usermodel.Sheet;
import org.apache.poi.xssf.usermodel.XSSFWorkbook;
public class JxlReadExcel {
public static void main(String[] args) {
File file = new File("e:/测试文件.xlsx");
//创建Excel,读取文件内容
try {
XSSFWorkbook workbook =
new XSSFWorkbook(FileUtils.openInputStream(file));
//创建Excel,读取文件内容
// Workbook workbook=new Workbook(new FileInputStream(new File("e:/测试文件.xls")));
//获取第一个工作表workbook.getSheet("ygc开发表");
// Sheet sheet=workbook.getSheet("ygc开发表");
//第二种获取方式通过index 获取第一个表
Sheet sheet = workbook.getSheetAt(0);
int firstRowNum=0;
//获取表中最后一行
int lastRowNum = sheet.getLastRowNum();
for(int i=firstRowNum;i<=lastRowNum;i++){
Row row = sheet.getRow(i);
//获取当前最后单元格列号
int lastCellNum = row.getLastCellNum();
for(int j=0;j
Cell cell = row.getCell(j);
String value = cell.getStringCellValue();
System.out.print(value + " ");//注意value后面的空格
}
System.out.println();
}
} catch (IOException e) {
e.printStackTrace();
}
}
}
web
//利用下载导出 可以根据业务需求进行改进
//头部
HSSFWorkbook wb = new HSSFWorkbook();
request.setCharacterEncoding("UTF-8");
response.setCharacterEncoding("UTF-8");
response.setContentType("application/x-download");
String fileName = "测试文件.xls";
fileName = URLEncoder.encode(fileName, "UTF-8");
response.addHeader("Content-Disposition", "attachment;filename=" + fileName);
//--------------------------HSSF表格制作
//导出
OutputStream out = response.getOutputStream();
wb.write(out);
out.close();