java导入使用Apache导入Excel的简单实现
package com.bruce.geekway.tonglian.job; import java.io.File; import java.io.FileInputStream; import java.io.Serializable; import java.lang.reflect.Field; import java.math.BigDecimal; import java.util.Date; import java.util.Iterator; import org.apache.commons.lang3.StringUtils; 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.XSSFWorkbook; import com.bruce.geekway.utils.SeasonUtils; public class TestImportHS300ExcelData { public static void main(String[] args) throws Exception { String[] fieldList = new String[]{"stockDate","open","high","low","close","turnover","volume"}; TestImportHS300ExcelData t = new TestImportHS300ExcelData(); t.importExcel(new File("/Users/yanghl/Downloads/hs30002.xlsx"),HS300StockData.class,fieldList); } public void importExcel(File file,Class clazz,String[] fieldList) throws Exception { try { Workbook book = null; Sheet sheet = null; // 得到工作表 if(file.getName().endsWith("xlsx")){ book = new XSSFWorkbook(new FileInputStream(file)); }else if(file.getName().endsWith("xls")){ book = new HSSFWorkbook(new FileInputStream(file)); } // 得到第一页 sheet = book.getSheetAt(0); // 得到第一面的所有行 Iterator<Row> row = sheet.rowIterator(); /** * 标题解析 */ // 得到第一行,也就是标题行 Row title = row.next(); // 得到第一行的所有列 Iterator<Cell> cellTitle = title.cellIterator(); // 循环标题所有的列 StringBuilder sb = new StringBuilder(); while (cellTitle.hasNext()) { Cell cell = cellTitle.next(); sb.append(cell.getStringCellValue().trim()).append(" "); } System.out.println(sb.toString()); /** * 解析内容行 */ while (row.hasNext()) { // 标题下的第一行 Row rown = row.next(); System.out.println(" row num = " + rown.getRowNum()); // 行的所有列 Iterator<Cell> cellbody = rown.cellIterator(); Object result = clazz.newInstance(); // 遍历一行的列 while (cellbody.hasNext()) { // System.out.println("lastRow = " + sheet.getLastRowNum() + " nowRown =" +rown.getRowNum()); //cell.getNumericCellValue() 会有默认值 cell.toString() 不会有默认值 //遍历每一列 Cell cell = cellbody.next(); //反射获取对象的字段 Field filed = result.getClass().getDeclaredField(fieldList[cell.getColumnIndex()]); filed.setAccessible(true); if(filed.getType() == Date.class){ filed.set(result, cell.getDateCellValue()); continue; } if(filed.getType() == Double.class){ filed.set(result, cell.getNumericCellValue()==0 ? null : cell.getNumericCellValue()); continue; } if(filed.getType() == BigDecimal.class){ filed.set(result, getRoundForString(cell.toString())); continue; } if(filed.getType() == Integer.class){ filed.set(result, StringUtils.isBlank(cell.toString()) ? null : Integer.parseInt(cell.toString())); continue; } if(filed.getType() == String.class){ filed.set(result, cell.getStringCellValue()); } } System.out.println("++++" + SeasonUtils.getGson().toJson(result)); } } catch (Exception e) { e.printStackTrace(); throw e; } } public static BigDecimal getRoundForString(String val) { if(StringUtils.isBlank(val)) return null; return new BigDecimal(val).setScale(2, BigDecimal.ROUND_HALF_UP); } } class HS300StockData implements Serializable{ /** * */ private static final long serialVersionUID = 1L; private Date stockDate; private String stockCode; private String stockName; private Double open ; //开盘价 private BigDecimal close; //收盘价 private BigDecimal high; //最低 private BigDecimal low; //最高 private BigDecimal preClose; //早日收盘价 private BigDecimal volume;//成交量 private BigDecimal turnover;//成交额 public Date getStockDate() { return stockDate; } public void setStockDate(Date stockDate) { this.stockDate = stockDate; } public String getStockCode() { return stockCode; } public void setStockCode(String stockCode) { this.stockCode = stockCode; } public String getStockName() { return stockName; } public void setStockName(String stockName) { this.stockName = stockName; } public Double getOpen() { return open; } public void setOpen(Double open) { this.open = open; } public BigDecimal getClose() { return close; } public void setClose(BigDecimal close) { this.close = close; } public BigDecimal getHigh() { return high; } public void setHigh(BigDecimal high) { this.high = high; } public BigDecimal getLow() { return low; } public void setLow(BigDecimal low) { this.low = low; } public BigDecimal getPreClose() { return preClose; } public void setPreClose(BigDecimal preClose) { this.preClose = preClose; } public BigDecimal getVolume() { return volume; } public void setVolume(BigDecimal volume) { this.volume = volume; } public BigDecimal getTurnover() { return turnover; } public void setTurnover(BigDecimal turnover) { this.turnover = turnover; } }
参考地址:
http://blog.csdn.net/hiping_cao/article/details/24460423
http://www.cnblogs.com/mabaishui/p/5826864.html
相关推荐
Excel源代码,导入导出各种工具类 <groupId>org.apache.poi <artifactId>poi <groupId>org.apache.poi <artifactId>poi-scratchpad 代码实例: String path = ""; byte[] bytes; vo.setCurrentPage(0); vo....
Java POI 实现 Excel 导入导出 Java POI 是一个流行的 Java 库,用于处理 Microsoft Office 文件格式,包括 Excel 文件。在本文中,我们将详细介绍如何使用 Java POI 实现 Excel 导入导出功能。 1. 什么是 Java ...
综上所述,Java导入Excel文件涉及的关键技术包括Apache POI库的使用,对HSSF和XSSF的理解,以及对CSV文件处理的技巧。通过熟练掌握这些知识,你可以编写出高效且健壮的文件导入程序,满足各种需求。
java jxl 通过excel模板创建新文件并将数据导入excel,实现按行、列插入数据
在Java编程环境中,实现Excel数据的导入是一项常见的任务,尤其在数据处理、报表生成或数据分析等领域。Apache POI是一个流行的库,它允许开发者读写Microsoft Office格式的文件,包括Excel(.xls和.xlsx)。本篇...
用Java实现的Excel的导入导出,简洁明了,高质量代码。
在Java开发中,处理Excel数据是一项常见的任务,尤其是在数据导入导出、数据分析或者报表生成等场景。Apache POI是一个流行的库,它允许开发者使用Java来读取、写入和修改Microsoft Office格式的文件,包括Excel(....
在Java编程中,将Excel数据导入到MySQL数据库是一项常见的任务,尤其在数据处理和分析的场景下。要完成这个过程,我们需要使用特定的库来读取Excel文件,并使用JDBC(Java Database Connectivity)来与MySQL数据库...
在Java中,实现Excel数据导入到数据库的步骤如下: 1. **读取Excel文件**:使用POI的`XSSFWorkbook`(针对.xlsx文件)或`HSSFWorkbook`(针对.xls文件)类打开Excel文件,然后通过`Sheet`和`Row`对象遍历并获取数据...
以上就是关于“Java导入Excel到数据库”的详细知识点,涵盖了文件路径配置、合并单元格处理、数据库连接、Excel操作和数据导入等多个方面。这个过程需要对Java、数据库操作以及Excel处理有深入理解,才能有效地完成...
Java实现Excel导入导出是Java开发中常见的任务,主要用于数据的批量处理和分析,尤其在数据分析、报表生成和数据备份等方面具有广泛应用。要熟练掌握这一技术,开发者需要了解Excel文件的结构,熟悉Java的文件操作,...
本文将深入探讨Java中导入和判断Excel的使用方法,结合实例分析,帮助你全面理解这一技术。 首先,Java与Excel的交互通常依赖于第三方库,如Apache POI或JExcelAPI。Apache POI是目前最常用的一个,它提供了丰富的...
Java 实现 Excel 导入导出 Java 是一种流行的编程语言,Excel 是一种常用的电子表格软件。在 Java 中,实现 Excel 导入导出可以使用多种方式,本文将介绍使用 JXL 和 POI 两个库实现 Excel 导入导出的方法。 使用 ...
在Java编程中,导入Excel表格是一项常见的任务,特别是在数据处理、数据分析或系统集成等领域。Excel文件通常用于存储结构化数据,而Java作为一种强大的后端语言,提供了多种方式来读取和操作这些数据。本篇文章将...
Java 实现 Excel 导入导出是指使用 Java 语言编写程序来实现将 Excel 文件中的数据导入到 Java 程序中,并将 Java 程序中的数据导出到 Excel 文件中。这种操作可以使用 Apache POI 库来实现。 POI 库简介 Apache ...
测试环境:java 1.8 + poi 3.17+tomcat jar列表: commons-codec-1.10.jar commons-collections4-4.1.jar commons-fileupload-1.3.1.jar lib/commons-io-2.5.jar commons-lang-2.3.jar poi-3.17.jar poi-ooxml-3.17....
Java POI EXCEL导入导出Java POI EXCEL导入导出Java POI EXCEL导入导出Java POI EXCEL导入导出Java POI EXCEL导入导出Java POI EXCEL导入导出Java POI EXCEL导入导出
java Excel工具类,导入导出Excel数据,导入数据对合并表格有判断获取数据,导出数据到Excel,Excel文件不存在会创建。 博客:https://blog.csdn.net/qq_37902949/article/details/81230640
总结起来,Java实现Excel中插入图片的核心步骤包括:导入Apache POI库,创建并操作工作簿和工作表,读取和创建图片对象,创建绘图工作表,设置图片位置,最后保存工作簿。在实际开发中,可能还需要处理图片格式转换...