poi读取exl(copy别人的)
来源:互联网 发布:coremail知乎 编辑:程序博客网 时间:2024/04/28 07:43
package yicatest;import java.io.BufferedInputStream;import java.io.File;import java.io.FileInputStream;import java.io.FileNotFoundException;import java.io.IOException;import java.text.DecimalFormat;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 ExcelOperate {public static void main(String[] args) throws Exception {File file = new File("D://test.xls");String[][] result = getData(file, 1);int rowLength = result.length;for (int i = 0; i < rowLength; i++) {for (int j = 0; j < result[i].length; j++) {System.out.print(result[i][j] + "\t\t");}System.out.println();}}/** * * 读取Excel的内容,第一维数组存储的是一行中格列的值,二维数组存储的是多少个行 * * @param file * 读取数据的源Excel * * @param ignoreRows * 读取数据忽略的行数,比喻行头不需要读入 忽略的行数为1 * * @return 读出的Excel中数据的内容 * * @throws FileNotFoundException * * @throws IOException */public static String[][] getData(File file, int ignoreRows)throws FileNotFoundException, IOException {List<String[]> result = new ArrayList<String[]>();int rowSize = 0;BufferedInputStream in = new BufferedInputStream(new FileInputStream(file));// 打开HSSFWorkbookPOIFSFileSystem 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 = false;for (short columnIndex = 0; columnIndex <= row.getLastCellNum(); columnIndex++) {String value = "";cell = row.getCell(columnIndex);if (cell != null) {// 注意:一定要设成这个,否则可能会出现乱码// cell.setEncoding(HSSFCell.ENCODING_UTF_16);// cell.setswitch (cell.getCellType()) {case HSSFCell.CELL_TYPE_STRING:value = cell.getStringCellValue();break;case HSSFCell.CELL_TYPE_NUMERIC:if (HSSFDateUtil.isCellDateFormatted(cell)) {Date date = cell.getDateCellValue();if (date != null) {value = new SimpleDateFormat("yyyy-MM-dd").format(date);} else {value = "";}} else {value = new DecimalFormat("0").format(cell.getNumericCellValue());}break;case HSSFCell.CELL_TYPE_FORMULA:// 导入时如果为公式生成的数据则无值if (!cell.getStringCellValue().equals("")) {value = cell.getStringCellValue();} else {value = cell.getNumericCellValue() + "";}break;case HSSFCell.CELL_TYPE_BLANK:break;case HSSFCell.CELL_TYPE_ERROR:value = "";break;case HSSFCell.CELL_TYPE_BOOLEAN:value = (cell.getBooleanCellValue() == true ? "Y": "N");break;default:value = "";}}if (columnIndex == 0 && value.trim().equals("")) {break;}values[columnIndex] = rightTrim(value);hasValue = 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) {if (str == null) {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);}}
原文地址 ::http://www.cnblogs.com/gmq/archive/0001/01/01/1521496.html
0 0
- poi读取exl(copy别人的)
- 上传附件读取exl
- 【实例】copy别人的网页
- exl 错误的round()
- 程序员的成长过程(copy别人的)
- abstract class与interface的区别(copy别人的)
- 转的别人的(JS来读取XML)
- 模块化的POI读取Excel
- 模块化的POI读取Excel
- 模块化的POI读取Excel
- poi 读取excel 的乱码
- poi读取行数的问题
- poi读取excel的使用
- POI excel的读取,写入
- 孟子E张的grid导出exl
- 把数据导到EXL的总结
- Exl转换成html的方法
- JAVA实现EXL的导入导出功能
- 知道什么是螃蟹效应吗?
- K9F1G08U0D - SCB0 samsung Flash 128MB 现货
- 没事儿找事儿————gtk学习(盒状容器)
- Java笔记
- winform 无边框实现拖拽
- poi读取exl(copy别人的)
- C++类静态成员与类静态成员函数
- 杨辉三角的变形【解】--英雄会
- 希尔排序
- 几个内存相关面试题(c/c++)
- MFC--网络聊天软件设计--孙鑫--vs2008
- ZOJ-3712
- java mysql 操纵元数据(包括写到xml文件中 dom4j)
- QTP对象库文件转换为XML文件格式