java日常工具类之Excel工具类
2021/7/28 20:07:01
本文主要是介绍java日常工具类之Excel工具类,对大家解决编程问题具有一定的参考价值,需要的程序猿们随着小编来一起学习吧!
import java.io.ByteArrayOutputStream; import java.io.FileOutputStream; import java.io.IOException; import java.io.OutputStream; import java.text.DecimalFormat; import java.text.SimpleDateFormat; import java.util.Calendar; import java.util.Date; import java.util.regex.Matcher; import java.util.regex.Pattern; import org.apache.poi.hssf.usermodel.HSSFCell; import org.apache.poi.hssf.usermodel.HSSFDateUtil; import org.apache.poi.ss.usermodel.Cell; import org.apache.poi.ss.usermodel.DateUtil; import org.apache.poi.ss.usermodel.Row; import org.apache.poi.xssf.streaming.SXSSFWorkbook; import org.apache.poi.xssf.usermodel.XSSFCell; import org.springframework.web.context.request.RequestContextHolder; import org.springframework.web.context.request.ServletRequestAttributes; import javax.servlet.http.HttpServletRequest; /** * Excel工具类 * * @author lp */ public class ExcelUtil { public static final String OFFICE_EXCEL_2003_POSTFIX = "xls"; public static final String OFFICE_EXCEL_2010_POSTFIX = "xlsx"; public static final String EMPTY = ""; public static final String POINT = "."; public static SimpleDateFormat sdf = new SimpleDateFormat("yyyy/MM/dd"); /** * 获得path的后缀名 * * @param path * @return */ public static String getPostfix(String path) { if (path == null || EMPTY.equals(path.trim())) { return EMPTY; } if (path.contains(POINT)) { return path.substring(path.lastIndexOf(POINT) + 1, path.length()); } return EMPTY; } /** * 单元格格式 * * @param hssfCell * @return */ @SuppressWarnings({"static-access", "deprecation"}) public static String getHValue(HSSFCell hssfCell) { if (hssfCell.getCellType() == hssfCell.CELL_TYPE_BOOLEAN) { return String.valueOf(hssfCell.getBooleanCellValue()); } else if (hssfCell.getCellType() == hssfCell.CELL_TYPE_NUMERIC) { String cellValue = ""; if (HSSFDateUtil.isCellDateFormatted(hssfCell)) { Date date = HSSFDateUtil.getJavaDate(hssfCell.getNumericCellValue()); cellValue = sdf.format(date); } else { DecimalFormat df = new DecimalFormat("#.##"); cellValue = df.format(hssfCell.getNumericCellValue()); String strArr = cellValue.substring(cellValue.lastIndexOf(POINT) + 1, cellValue.length()); if (strArr.equals("00")) { cellValue = cellValue.substring(0, cellValue.lastIndexOf(POINT)); } } return cellValue; } else { return String.valueOf(hssfCell.getStringCellValue()); } } /** * 单元格格式 * * @param xssfCell * @return */ public static String getXValue(XSSFCell xssfCell) { if (xssfCell.getCellType() == Cell.CELL_TYPE_BOOLEAN) { return String.valueOf(xssfCell.getBooleanCellValue()); } else if (xssfCell.getCellType() == Cell.CELL_TYPE_NUMERIC) { String cellValue = ""; if (DateUtil.isCellDateFormatted(xssfCell)) { Date date = DateUtil.getJavaDate(xssfCell.getNumericCellValue()); cellValue = sdf.format(date); } else { DecimalFormat df = new DecimalFormat("#.##"); cellValue = df.format(xssfCell.getNumericCellValue()); String strArr = cellValue.substring(cellValue.lastIndexOf(POINT) + 1, cellValue.length()); if (strArr.equals("00")) { cellValue = cellValue.substring(0, cellValue.lastIndexOf(POINT)); } } return cellValue; } else { return String.valueOf(xssfCell.getStringCellValue()); } } public static int writeExcelOs(String[][] content,String savaPath) { byte[] data = null; ByteArrayOutputStream bos = new ByteArrayOutputStream(); OutputStream os=null; SXSSFWorkbook workBook = null; int rutle=0; try { workBook = new SXSSFWorkbook(); os=new FileOutputStream(savaPath); org.apache.poi.ss.usermodel.Sheet sheet=workBook.createSheet(); workBook.setSheetName(0,"sheet1"); // for (int i = 0; i < content.length; i++) { Row row = sheet.createRow(i); for (int j = 0; j < content[i].length; j++) { row.createCell(j).setCellValue(content[i][j]); } } workBook.write(os); os.flush(); os.close(); rutle=1; } catch (IOException e) { e.printStackTrace(); } finally { try { bos.close(); //os.close(); } catch (IOException e) { e.printStackTrace(); } } return rutle; } }
这篇关于java日常工具类之Excel工具类的文章就介绍到这儿,希望我们推荐的文章对大家有所帮助,也希望大家多多支持为之网!
- 2024-12-25初学者必备:订单系统资料详解与实操教程
- 2024-12-24内网穿透资料入门教程
- 2024-12-24微服务资料入门指南
- 2024-12-24微信支付系统资料入门教程
- 2024-12-24微信支付资料详解:新手入门指南
- 2024-12-24Hbase资料:新手入门教程
- 2024-12-24Java部署资料
- 2024-12-24Java订单系统资料:新手入门教程
- 2024-12-24Java分布式资料入门教程
- 2024-12-24Java监控系统资料详解与入门教程