介绍
利用Java怎么将excel表格转换成json数据?相信很多没有经验的人对此束手无策,为此本文总结了问题出现的原因和解决方法,通过这篇文章希望你能解决这个问题。
实现方法如下:
包org.duang.test; 进口java.io.File; 进口java.util.ArrayList; 进口java.util.HashMap; 进口并不知道; 进口java.util.Map; 进口net.sf.json.JSONArray; 进口org.apache.poi.ss.usermodel.Cell; 进口org.apache.poi.ss.usermodel.DateUtil; 进口org.apache.poi.ss.usermodel.FormulaEvaluator; 进口org.apache.poi.ss.usermodel.Row; 进口org.apache.poi.ss.usermodel.Sheet; 进口org.apache.poi.ss.usermodel.Workbook; 进口org.apache.poi.ss.usermodel.WorkbookFactory;/* * * excel表格转成json * @ClassName: Excel2JSONHelper * @Description:待办事项(这里用一句话描述这个类的作用) * @author LiYonghui * @date 2017年1月6日下午4:42:43 */公开课Excel2JSONHelper {//常亮,用作第一种模板类型,如下图 私有静态最终int HEADER_VALUE_TYPE_Z=1;//第二种模板类型,如下图 私有静态最终int HEADER_VALUE_TYPE_S=2; 公共静态void main (String [] args) { 文件dir=新文件(“e: \ \ 2003. xls"); Excel2JSONHelper excelHelper=getExcel2JSONHelper ();//dir文件,0代表是第一行为保存到数据库或者实体类的表头,一般为英文的字符串,2代表是第二种模板, JSONArray JSONArray=excelHelper。readExcle (dir 0 2); System.out.println (jsonArray.toString ());; }/* * * *获取一个实例 */私有静态Excel2JSONHelper getExcel2JSONHelper () { 返回新Excel2JSONHelper (); }/* * *文件过滤 * @Title: fileNameFileter * @Description:待办事项(这里用一句话描述这个方法的作用) * @param: * @author LiYonghui * @date 2017年1月6日下午4:45:42 * @return:空白 * @throws */私人布尔fileNameFileter(文件文件){ 布尔endsWith=false; 如果(文件!=null) { 字符串文件名=file.getName (); endsWith=fileName.endsWith (“.xls") | | fileName.endsWith (“.xlsx"); } 返回endsWith; }/* * *获取表头行 * @Title: getHeaderRow * @Description:待办事项(这里用一句话描述这个方法的作用) * @param: @param表 * @param: @param指数 * @param: @return * @author LiYonghui * @date 2017年1月6日下午5:05:24 * @return:行 * @throws */私人行getHeaderRow(单表,int指数){ 行headerRow=零; 如果(表!=null) { headerRow=sheet.getRow(指数); } 返回headerRow; }/* * *获取表格中单元格的值 * @Title: getCellValue * @Description:待办事项(这里用一句话描述这个方法的作用) * @param: @param行 * @param: @param cellIndex * @param: @param公式 * @param: @return * @author LiYonghui * @date 2017年1月6日下午5:40:28 * @return:对象 * @throws */私有对象getCellValue(一行一行,int cellIndex FormulaEvaluator公式){ 细胞细胞=row.getCell (cellIndex); 如果(细胞!=null) { 开关(cell.getCellType ()) {//字符串类型 案例Cell.CELL_TYPE_STRING: .getString返回cell.getRichStringCellValue () ();//数字类型 案例Cell.CELL_TYPE_NUMERIC: 如果(DateUtil.isCellDateFormatted(细胞)){ .getTime返回cell.getDateCellValue () (); 其他}{ 返回cell.getNumericCellValue (); }//布尔类型 案例Cell.CELL_TYPE_BOOLEAN: 返回cell.getBooleanCellValue ();//公式 案例Cell.CELL_TYPE_FORMULA: 返回formula.evaluate(细胞).getNumberValue (); 默认值: 返回null; } } 返回null; }/* * *获取表头的值 * @Title: getHeaderCellValue * @Description:待办事项(这里用一句话描述这个方法的作用) * @param: @param headerRow * @param: @param cellIndex英文表头所在的行,从0开始计算哦 * @param: @param类型表头的类型第一种姓名(名)英文于实体类或者数据库中的变量一致 * @param: @return * @author LiYonghui * @date 2017年1月6日下午6:12:21 * @return:字符串 * @throws */私人字符串getHeaderCellValue (int, int cellIndex行headerRow类型){ 细胞细胞=headerRow.getCell (cellIndex); 字符串headerValue=https://www.yisu.com/zixun/null; 如果(细胞!=null) {//第一种模板类型 如果(type==HEADER_VALUE_TYPE_Z) { .getString headerValue=cell.getRichStringCellValue () (); int l_bracket=headerValue.indexOf (“(”); int r_bracket=headerValue.indexOf (“)”); 如果(l_bracket==1) { l_bracket=headerValue.indexOf (“(”); } 如果(r_bracket==1) { r_bracket=headerValue.indexOf (“)”); } headerValue=headerValue。substring (l_bracket + 1, r_bracket); }else if (type==HEADER_VALUE_TYPE_S) {//第二种模板类型 .getString headerValue=cell.getRichStringCellValue () (); } } 返回headerValue; }/* * *读取excel表格 * @Title: readExcle * @Description:待办事项(这里用一句话描述这个方法的作用) * @param: @param文件 * @param: @param headerIndex * @param: @param具有表头的类型第一种姓名(名)英文于实体类或者数据库中的变量一致 * @author LiYonghui * @date 2017年1月6日下午6:13:27 * @return:空白 * @throws */JSONArray公共readExcle(文件文件、int headerIndex int具有){利用Java怎么将excel表格转换成json数据