java下导入excel用到方法以及jar包
来源:互联网 发布:八极拳小说知乎 编辑:程序博客网 时间:2024/06/05 02:20
利用JfileChooser javaswing类库 进行调用弹出的窗体 选择文件所在的路径。
JFileChooser file = ExcelUtil.getFile();
// 判断是否关闭或取消保存框
if (file != null) {
// 的到保存路径
return file.getSelectedFile().getAbsolutePath() + ".xls";
}
public static JFileChooser getFile() {
// 默认打开D盘JFileChooser file = new MyChooser("D:/");
// 下面这句是去掉显示所有文件这个过滤器。
file.setAcceptAllFileFilterUsed(false);
// 添加excel文件的过滤器
file.addChoosableFileFilter(new ExcelFileFilter("xls"));
int result = file.showSaveDialog(null);
// JFileChooser.APPROVE_OPTION是个整型常量,代表0。就是说当返回0的值我们才执行相关操作,否则什么也不做。
if (result == JFileChooser.APPROVE_OPTION) {
// 获得你选择的文件绝对路径。并输出。当然,我们获得这个路径后还可以做很多的事。
String path = file.getSelectedFile().getAbsolutePath();
System.out.println(path);
} else {
file = null;
System.out.println("你已取消并关闭了窗口!");
}
return file;
}
// 文件过滤器 只保存xls文件
private static class ExcelFileFilter extends FileFilter {
String ext;
ExcelFileFilter(String ext) {
this.ext = ext;
}
public boolean accept(File f) {
if (f.isDirectory()) {
return true;
}
String fileName = f.getName();
int index = fileName.lastIndexOf('.');
if (index > 0 && index < fileName.length() - 1) {
String extension = fileName.substring(index + 1).toLowerCase();
if (extension.equals(ext))
return true;
}
return false;
}
public String getDescription() {
if (ext.equals("xls")) {
return "Microsoft Excel文件(*.xls)";
}
return "";
}
}
private static class MyChooser extends JFileChooser {
private static final long serialVersionUID = 1L;
MyChooser(String path) {
super(path);
}
public void approveSelection() {
File file = this.getSelectedFile();
if (file.exists()) {
int copy = JOptionPane.showConfirmDialog(null, "是否要覆盖当前文件?", "保存", JOptionPane.YES_NO_OPTION, JOptionPane.QUESTION_MESSAGE);
if (copy == JOptionPane.YES_OPTION)
super.approveSelection();
} else
super.approveSelection();
}
}
2.利用poi的机制对excel进行注入编写。、、
再导入之前要注意区分开可能别人导入格式可能跟自己的不一样。其中.xls 和.xlsx 结尾的。
List<List<String>> excelList = Excel.findProductNumberExcel(filePath);
private static List<List<String>> findProductNumberExcelXlsx(String path) {
List<List<String>> list = new ArrayList<List<String>>();
try {
// SXSSFWorkbook XSSFWorkbook
// XSSFWorkbook xwb = new XSSFWorkbook(path);
FileInputStream file = new FileInputStream(path);
// CreationHelper ch=new CreationHelper()
XSSFWorkbook xwb = new XSSFWorkbook(file);
// 读取第一章表格内容
XSSFSheet sheet = xwb.getSheetAt(0);
// 定义 row、cell
XSSFRow row;
// 循环输出表格中的内容
for (int i = sheet.getFirstRowNum(); i < sheet.getPhysicalNumberOfRows(); i++) {
row = sheet.getRow(i);
List<String> strList = new ArrayList<String>();
for (int j = row.getFirstCellNum(); j < row.getLastCellNum(); j++) {
XSSFCell ce = row.getCell(j);
ce.setCellType(HSSFDataFormat.getBuiltinFormat("0"));
strList.add(ce.toString());
}
list.add(strList);
}
file.close();
} catch (Exception e) {
System.out.println(e.getMessage());
}
return list;
}
/**
*
*
* @param path
* @return
*/
private static List<List<String>> findProductNumberExcelXls(String path) {
List<List<String>> list = new ArrayList<List<String>>();
try {
Workbook book = Workbook.getWorkbook(new File(path));
Sheet sheet[] = book.getSheets();// 得到所有Excel中页的列表.
for (int i = 0; i < sheet[0].getRows(); i++) {
List<String> strList = new ArrayList<String>();
for (int j = 0; j < sheet[0].getColumns(); j++) {
strList.add(sheet[0].getCell(j, i).getContents());
}
list.add(strList);
}
book.close();
} catch (Exception e) {
System.out.println(e.getMessage());
}
return list;
}
public static List<List<String>> findProductNumberExcel(String path) {
if (getExcelStyle(path).intValue() == 1) {
return findProductNumberExcelXls(path);
} else if (getExcelStyle(path).intValue() == 2)
// return findProductNumberExcelXls(path);
return findProductNumberExcelXlsx(path);
else
return null;
}
/**
* 判断选择的excl文件格式
*
* @param path
* @return 1.97-2003格式Excel文件 2.2007+新格式Excel文件
*/
private static Integer getExcelStyle(String path) {
int result = 0;
if (!StringUtils.isBlank(path)) {
String str = path.substring(path.lastIndexOf("."), path.length());
if (".xls".equals(str))
result = 1;
else if (".xlsx".equals(str))
result = 2;
}
return result;
}、
下面就可以进行导入excel对excel进行操作。
public static Boolean saveToExcel(List<Map> list,String path,List<Integer> excelTitle,String[] excelTitleName, String sheetName) {
// Page<Sector> pageResult = searchSector(page, search);
// 第一步,创建一个webbook,对应一个Excel文件
HSSFWorkbook wb = new HSSFWorkbook();
// 第二步,在webbook中添加一个sheet,对应Excel文件中的sheet
HSSFSheet sheet = wb.createSheet(sheetName);
// 第三步,在sheet中添加表头第0行,注意老版本poi对Excel的行数列数有限制short
HSSFRow row = sheet.createRow((int) 0);
// 第四步,创建单元格,并设置值表头 设置表头居中
HSSFCellStyle style = wb.createCellStyle();
style.setAlignment(HSSFCellStyle.ALIGN_CENTER); // 创建一个居中格式
HSSFCell cell = row.createCell((short) 0);
if (excelTitle != null) {
for (int i = 0; i < excelTitle.size(); i++) {
cell.setCellValue(excelTitleName[excelTitle.get(i)]);
cell.setCellStyle(style);
cell = row.createCell((short) i + 1);
}
}
// 第五步,写入实体数据 实际应用中这些数据从数据库得到,
int i = 0;
for (Map strList : list) {
row = sheet.createRow((int) i + 1);
for (int j = 0; j < excelTitle.size(); j++) {
if(strList.get("name_" + j)!=null){
// 第四步,创建单元格,并设置值
if (strList.get("name_" + j).getClass().equals(Integer.class)) {
Integer s = (Integer) strList.get("name_" + j);
row.createCell((short) j).setCellValue((Integer) s);
} else {
String s = (String) strList.get("name_" + j);
row.createCell((short) j).setCellValue((String) s);
}
}
}
i++;
}
// 第六步,将文件存到指定位置
// try {
// OutputStream fOut = resp.getOutputStream();
// wb.write(fOut);
// fOut.flush();
// fOut.close();
// return true;
//
// } catch (Exception e) {
// e.printStackTrace();
// return false;
// }
FileOutputStream fileoutputstream = null;
try {
FileOutputStream fout = new FileOutputStream(path);
wb.write(fout);
fout.close();
return true;
} catch (Exception e) {
e.printStackTrace();
return false;
}
//return null;
}
- java下导入excel用到方法以及jar包
- 将Java源码导入jar包方法
- java导入导出excel操作(jxl)jxl.jar 包
- Eclipse下导入jar包
- linux下导入jar包运行java程序。
- JAVA Eclipse下如何导入jar包(1)
- JAVA Eclipse下如何导入jar包(2)
- 在eclipse导入Java 的jar包的方法
- 向Java项目中导入jar包方法详述
- JAVA 使用eclipse导入jar包的两种方法
- 在eclipse导入Java 的jar包的方法 JDBC【
- 【转载】向Java项目中导入jar包方法详述
- 批量导入CMS内容,用到jxl.jar包
- java项目jar包导入
- java导入外部jar包
- Java 导入jar包方式
- java project导入jar包
- MyEclipse导入jar包以及源码
- (poj)3254 Corn Fields
- Hadoop namenode 没有运行 解决方案
- 父shell和子shell的区别,在shell脚本中要cd一个文件夹为什么要用父shell运行
- Codeforces Round #196 (Div. 2) C. Quiz
- 使用SecureCRT 连接VMWare8中的linux RedHat9.0/CentOS6.2虚拟机
- java下导入excel用到方法以及jar包
- uboot1.1.6移植SDHC驱动、Fat支持
- 【美化§俘获云朵xp电脑主题】
- 关于DOM的几个概念
- HDU Today
- HDU1009-贪心-部分背包
- android ActionBar
- 让SELECT 查询结果额外增加自动递增序号
- HDU 1877 又一版 A+B 及 itoa函数 应用 头文件 #include <stdlib.h>