首页 Excel类

Excel类

举报
开通vip

Excel类Excel类 2012-3-8 13:39| 发布者: benben| 查看: 203| 评论: 0 摘要: package com.ly.utils;import java.io.BufferedInputStream;import java.io.File;import java.io.FileInputStream;import java.io.IOException;import java.text.SimpleDateFormat;import java.util.ArrayList;impor .....

Excel类
Excel类 2012-3-8 13:39| 发布者: benben| 查看: 203| 评论: 0 摘要: package com.ly.utils;import java.io.BufferedInputStream;import java.io.File;import java.io.FileInputStream;import java.io.IOException;import java.text.SimpleDateFormat;import java.util.ArrayList;impor ... package com.ly.utils; import java.io.BufferedInputStream; import java.io.File; import java.io.FileInputStream; import java.io.IOException; import java.text.SimpleDateFormat; import java.util.ArrayList; import java.util.Arrays; import java.util.Date; import java.util.List; import org.apache.poi.hssf.usermodel.HSSFCell; import org.apache.poi.hssf.usermodel.HSSFDateUtil; 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.poifs.filesystem.POIFSFileSystem; public class ExcelOpearate { /** * 读取Excel的内容,第一维数组储存的是一行中格列的值,二维数组中储存的是多少行 * * @param file * 读取数据源Excel * @param ignoreRows * 读取数据忽略的行数, * @return 读出的Excel中数据的内容 * @throws IOException */ public static String[][] getData(File file, int ignoreRows) throws IOException { List result = new ArrayList(); int rowSize = 0; BufferedInputStream in = new BufferedInputStream(new FileInputStream( file)); // 打开HSSFWorkBook POIFSFileSystem fs = new POIFSFileSystem(in); HSSFWorkbook wb = new HSSFWorkbook(fs); HSSFCell cell = null; for (int sheetIndex = 0; sheetIndex < wb.getNumberOfSheets(); sheetIndex++) { HSSFSheet st = wb.getSheetAt(sheetIndex); // 第一行为标题不读取 for (int rowIndex = ignoreRows; rowIndex <= st.getLastRowNum(); rowIndex++) { HSSFRow row = st.getRow(rowIndex); if (row == null) { continue; } int tempRowSize = row.getLastCellNum() + 1; if (tempRowSize > rowSize) { rowSize = tempRowSize; } String[] values = new String[rowSize]; Arrays.fill(values, ""); boolean hasValue = http://www.cnblogs.com/lovexinsky/archive/2012/03/08/false; for (short columnIndex = 0; columnIndex <= row.getLastCellNum(); columnIndex++) { String valuehttp://www.cnblogs.com/lovexinsky/archive/2012/03/08/= ""; cell = row.getCell(columnIndex); if (cell != null) { // 注意:一定要設成這個。否則可能會出現亂碼 cell.setEncoding(HSSFCell.ENCODING_UTF_16); switch (cell.getCellType()) { case HSSFCell.CELL_TYPE_STRING: value = http://www.cnblogs.com/lovexinsky/archive/2012/03/08/cell.getStringCellValue(); break; case HSSFCell.CELL_TYPE_NUMERIC: if (HSSFDateUtil.isCellDateFormatted(cell)) { Date date = cell.getDateCellValue(); if (date != null) { value = http://www.cnblogs.com/lovexinsky/archive/2012/03/08/new SimpleDateFormat("yyyy-MM-dd") .format(date); } else { valuehttp://www.cnblogs.com/lovexinsky/archive/2012/03/08/= ""; } } else { // value = http://www.cnblogs.com/lovexinsky/archive/2012/03/08/new DecimalFormat("0").format(cell // .getNumericCellValue()); value =http://www.cnblogs.com/lovexinsky/archive/2012/03/08/String.valueOf(cell.getNumericCellValue()+""); } break; case HSSFCell.CELL_TYPE_FORMULA: // 导入时如果为公式生成的数据则无值 if (!cell.getStringCellValue().equals("")) { value = http://www.cnblogs.com/lovexinsky/archive/2012/03/08/cell.getStringCellValue(); } else { value = http://www.cnblogs.com/lovexinsky/archive/2012/03/08/cell.getNumericCellValue() +""; } break; case HSSFCell.CELL_TYPE_BLANK: break; case HSSFCell.CELL_TYPE_ERROR: valuehttp://www.cnblogs.com/lovexinsky/archive/2012/03/08/= ""; break; case HSSFCell.CELL_TYPE_BOOLEAN: value = http://www.cnblogs.com/lovexinsky/archive/2012/03/08/(cell.getBooleanCellValue() == true ? "Y" : "N"); break; default: valuehttp://www.cnblogs.com/lovexinsky/archive/2012/03/08/= ""; } } if (columnIndex == 0 && value.trim().equals("")) { break; } values[columnIndex] = rightTrim(value); hasValue = http://www.cnblogs.com/lovexinsky/archive/2012/03/08/true; } if (hasValue) { result.add(values); } } } in.close(); String[][] returnArray = new String[result.size()][rowSize]; for (int i = 0; i < returnArray.length; i++) { returnArray[i] = (String[]) result.get(i); } return returnArray; } /** * 去掉字符串右边的空格 * * @param str * 要处理的字符串 * @return 处理后的字符串 */ public static String rightTrim(String str) { // TODO Auto-generated method stub if (str == "") { return ""; } int length = str.length(); for (int i = length - 1; i >= 0; i--) { if (str.charAt(i) != 0x20) { break; } length--; } return str.substring(0, length); } }
本文档为【Excel类】,请使用软件OFFICE或WPS软件打开。作品中的文字与图均可以修改和编辑, 图片更改请在作品中右键图片并更换,文字修改请直接点击文字进行修改,也可以新增和删除文档中的内容。
该文档来自用户分享,如有侵权行为请发邮件ishare@vip.sina.com联系网站客服,我们会及时删除。
[版权声明] 本站所有资料为用户分享产生,若发现您的权利被侵害,请联系客服邮件isharekefu@iask.cn,我们尽快处理。
本作品所展示的图片、画像、字体、音乐的版权可能需版权方额外授权,请谨慎使用。
网站提供的党政主题相关内容(国旗、国徽、党徽..)目的在于配合国家政策宣传,仅限个人学习分享使用,禁止用于任何广告和商用目的。
下载需要: 免费 已有0 人下载
最新资料
资料动态
专题动态
is_387830
暂无简介~
格式:doc
大小:50KB
软件:Word
页数:5
分类:互联网
上传时间:2012-07-07
浏览量:8