JAVA导入导出Excel【POI技术】
来源:互联网 发布:隐藏电脑录像软件 编辑:程序博客网 时间:2024/06/05 12:02
导入
package poi;
import java.io.IOException;
import java.util.ArrayList;
import java.util.HashMap;
import java.util.Map;
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 JavaOpExcel {
public String getCellValue(XSSFCell cell){
if(cell.getCellType()==XSSFCell.CELL_TYPE_STRING)
return cell.getStringCellValue();
if(cell.getCellType()==XSSFCell.CELL_TYPE_NUMERIC)
return String.valueOf((int)cell.getNumericCellValue());
if(cell.getCellType()==XSSFCell.CELL_TYPE_BLANK)
return "";
return "";
}
//@Test
//"C:\\Users\\zjj/Desktop/workbook.xlsx"
public ArrayList<Map<String,Object>> readExcel(String path) {
try {
XSSFWorkbook workbook = new XSSFWorkbook(path);
XSSFCell cell;
ArrayList<Map<String,Object>> aList=new ArrayList<Map<String,Object>>();
//得到sheets的数量
int num = workbook.getNumberOfSheets();
System.out.println("sheets的数量是:"+num);
for (int i = 0; i < num; i++) {
//实例化XSSFSheet
XSSFSheet sheet = workbook.getSheetAt(i);
//得到第一行和最后一行
int firstRowNum = sheet.getFirstRowNum();
int lastRowNum = sheet.getLastRowNum();
System.out.println("第一行:"+firstRowNum+1);
System.out.println("最后一行:"+lastRowNum+1);
//遍历行数
for (int j = firstRowNum+1; j <= lastRowNum; j++) {
Map<String,Object> map=new HashMap<String,Object>();
XSSFRow row = sheet.getRow(j);
//System.out.println("第"+row+"行");
//获取单元格
int firstCellNum = row.getFirstCellNum();
int lastCellNum = row.getLastCellNum();
System.out.println("第一个单元格:"+firstCellNum);
System.out.println("最后一个单元格:"+lastCellNum);
//遍历一行,遍历每个单元格
for (int k = firstCellNum; k < lastCellNum; k++) {
cell = row.getCell(k);
System.out.println("cell:"+cell);
String str= getCellValue(cell);
System.out.println("单元格值是:"+str);
map.put("cell"+k, str);
System.out.print(str+"\t");
}
aList.add(map);
System.out.println();
}
}
System.out.println(aList);
return aList;
} catch (IOException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
return null;
}
public void writeExcel() {
}
}
导出
package poi;
import java.io.FileOutputStream;
import java.util.ArrayList;
import java.util.HashMap;
import java.util.Iterator;
import java.util.List;
import java.util.Map;
import java.util.Set;
import org.apache.poi.hssf.usermodel.HSSFWorkbook;
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.ss.usermodel.Workbook;
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;
import org.junit.Test;
public class JavaExportExcel {
@Test
public void writeExcel(String sheetName, String[] filedName, List<Map> list, String filePath) {
try {
// 创建一个文件输出流
FileOutputStream fileOut = new FileOutputStream(filePath);
Set set = list.get(0).keySet();
Workbook workbook = null;
// System.out.println(filePath.substring(filePath.lastIndexOf(".")));
// 判断文件类型
if (filePath.substring(filePath.lastIndexOf(".")).equals(".xls"))
workbook = new HSSFWorkbook();
else if (filePath.substring(filePath.lastIndexOf(".")).equals(".xlsx"))
workbook = new XSSFWorkbook();
else {
System.out.println("文件类型不匹配");
return;
}
//创建工作表单sheet
Sheet sheet = workbook.createSheet(sheetName);
//创建第一行(表头)
Row row = sheet.createRow(0);
//单元格(列)
Cell cell;
for (int i = 0; i < filedName.length; i++) {
cell = row.createCell(i);
cell.setCellValue(filedName[i]);
}
//创建行
for (int i = 1; i <= list.size(); i++) {
row = sheet.createRow(i);
//迭代集合
Iterator iterator = set.iterator();
int j = 0;
while (iterator.hasNext()) {
String key = (String) iterator.next();
cell = row.createCell(j++);
if (list.get(i - 1).get(key) != null)
cell.setCellValue(list.get(i - 1).get(key).toString());
else
cell.setCellValue("");
}
}
workbook.write(fileOut);
workbook.close();
} catch (Exception e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
}
}
- JAVA导入导出Excel【POI技术】
- java excel poi 导入导出
- JAVA导入导出EXCEL(POI)
- Java POI导入导出excel
- 使用POI技术导出和导入Excel
- POI技术实现EXCEL的导入导出
- JAVA实现Excel导入/导出(POI)
- java poi 导入导出Excel xsl xslx
- 使用Java POI导入导出Excel数据
- java poi组件Excel的导入导出
- java导入导出Excel poi跟jxl
- JAVA WEB POI Excel导出导入
- Java中使用poi导入、导出Excel
- Java中使用poi导入、导出Excel
- Java中使用poi导入、导出Excel
- JAVA实现Excel导入/导出(POI)
- Java之POI的excel导入导出
- Java中使用poi导入、导出Excel
- zzuli oj 1002: 简单多项式求值
- 使用android studio编程异常汇总
- 阿里云首推免费人脸识别SDK 让每个APP轻松拥有短视频AR特效
- angular.js中window.onload(),$(document).ready()的写法
- hdu2039
- JAVA导入导出Excel【POI技术】
- Linux spi驱动框架之执行流程
- Codeforces 383C Propagating tree(树状数组)
- android studio打开从别地拷过来的项目报错
- 关于log4j超赞的文章
- java实现定时任务的三种方法
- 奇虎360scribe日志采集系统
- iOS判断对象是否为空
- GTC大会上“省钱”不亦乐乎,阿里云GPU人脸识别实在好玩!