最新下载
热门教程
- 1
- 2
- 3
- 4
- 5
- 6
- 7
- 8
- 9
- 10
java怎么读取2010 excel?java如何读写excel2010?
时间:2017-02-15 编辑:简简单单 来源:一聚教程网
代码如下 | 复制代码 |
import java.io.File; import java.io.FileInputStream; import java.io.IOException; import java.io.InputStream; import java.text.DateFormat; import java.text.SimpleDateFormat; import java.util.ArrayList; 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.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; public class ExcelRead { //判断excel版本 static Workbook openWorkbook(InputStream in,String filename,String fileFileName)throws IOException{ Workbook wb = null; if(fileFileName.endsWith(".xlsx")){ wb = new XSSFWorkbook(in);//Excel 2007 } else { wb = (Workbook) new HSSFWorkbook(in);//Excel 2003 } return wb; } public static List InputStream in = new FileInputStream(fileName); //创建输入流 Workbook wb = openWorkbook(in, fileName,fileFileName);// 获取Excel文件对象 Sheet sheet = wb.getSheetAt(0);// 获取文件的指定工作表m 默认的第一个 List Row row = null; Cell cell = null; int totalRows = sheet.getPhysicalNumberOfRows(); // 总行数 int totalCells = sheet.getRow(0).getPhysicalNumberOfCells();//总列数 for (int i = 0; i < totalRows; i++) { // 创建一个数组 用来存储每一列的值 String[] str = new String[totalRows]; row = sheet.getRow(i); for (int j = 0; j < totalCells; j++) { cell = (Cell) sheet.getCellComment(j, i); cell = row.getCell(j); System.out.println(j+"DDDDDDDDDD"); //str[j] = cell.getRow(); } // 把刚获取的列存入list list.add(str); } for(int r=0; r System.out.print("第" + r + "行"); for(int c = 0; c < totalCells; c++){ cell = row.getCell(c); String cellValue = ""; if(null != cell){ // 以下是判断数据的类型 switch (cell.getCellType()) { case HSSFCell.CELL_TYPE_NUMERIC: // 数字 cellValue = cell.getNumericCellValue() + ""; // 时间格式 // if(HSSFDateUtil.isCellDateFormatted(cell)){ // Date dd = cell.getDateCellValue(); // DateFormat df = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss"); // cellValue = df.format(dd); // } break; case HSSFCell.CELL_TYPE_STRING: // 字符串 cellValue = cell.getStringCellValue(); break; case HSSFCell.CELL_TYPE_BOOLEAN: // Boolean cellValue = cell.getBooleanCellValue() + ""; break; case HSSFCell.CELL_TYPE_FORMULA: // 公式 cellValue = cell.getCellFormula() + ""; break; case HSSFCell.CELL_TYPE_BLANK: // 空值 cellValue = ""; break; case HSSFCell.CELL_TYPE_ERROR: // 故障 cellValue = "非法字符"; break; default: cellValue = "未知类型"; break; } System.out.print(" "+cellValue+"\t"); } } System.out.println(); } // 返回值集合 return list; } public static void main(String[] args) throws Exception{ String fileName = "C:/Users/w520-2/Desktop/供应商系统中英文对照.xlsx"; ExcelRead upload = new ExcelRead(); upload.getExcelData(fileName,".xls"); } } |
相关文章
- SpringBoot测试配置属性与web启动环境解析 10-24
- vue中将el-switch值true、false改为number类型的1和0解析 10-24
- Vue中的路由配置项meta使用解读 10-24
- SpringBoot自定义bean绑定解析 10-24
- SpringBoot常用计量与bean属性校验和进制数据转换规则解析 10-24
- 工厂方法在Spring框架中的运用介绍 10-24