java excel转html图片_Excel在线预览(通过poi转html,含里面的图片)

这是一个Java程序,使用Apache POI库将Excel文件转换为HTML,同时保留其中的图片。代码包括读取Excel文件、处理单元格样式以及将图片转换并嵌入HTML中。
摘要由CSDN通过智能技术生成

1 packagecom.topcheer.html;2

3 importjava.io.File;4 importjava.io.FileInputStream;5 importjava.io.FileOutputStream;6 importjava.io.IOException;7 importjava.io.InputStream;8 importjava.io.PrintStream;9 importjava.text.DecimalFormat;10 importjava.text.SimpleDateFormat;11 importjava.util.Date;12 importjava.util.HashMap;13 importjava.util.List;14 importjava.util.Map;15

16 importorg.apache.poi.POIXMLDocumentPart;17 importorg.apache.poi.hssf.usermodel.HSSFCellStyle;18 importorg.apache.poi.hssf.usermodel.HSSFClientAnchor;19 importorg.apache.poi.hssf.usermodel.HSSFDataFormat;20 importorg.apache.poi.hssf.usermodel.HSSFDateUtil;21 importorg.apache.poi.hssf.usermodel.HSSFFont;22 importorg.apache.poi.hssf.usermodel.HSSFPalette;23 importorg.apache.poi.hssf.usermodel.HSSFPicture;24 importorg.apache.poi.hssf.usermodel.HSSFPictureData;25 importorg.apache.poi.hssf.usermodel.HSSFShape;26 importorg.apache.poi.hssf.usermodel.HSSFSheet;27 importorg.apache.poi.hssf.usermodel.HSSFWorkbook;28 importorg.apache.poi.hssf.util.HSSFColor;29 importorg.apache.poi.ss.usermodel.Cell;30 importorg.apache.poi.ss.usermodel.CellStyle;31 importorg.apache.poi.ss.usermodel.PictureData;32 importorg.apache.poi.ss.usermodel.Row;33 importorg.apache.poi.ss.usermodel.Sheet;34 importorg.apache.poi.ss.usermodel.Workbook;35 importorg.apache.poi.ss.usermodel.WorkbookFactory;36 importorg.apache.poi.ss.util.CellRangeAddress;37 importorg.apache.poi.xssf.usermodel.XSSFCellStyle;38 importorg.apache.poi.xssf.usermodel.XSSFClientAnchor;39 importorg.apache.poi.xssf.usermodel.XSSFColor;40 importorg.apache.poi.xssf.usermodel.XSSFDrawing;41 importorg.apache.poi.xssf.usermodel.XSSFFont;42 importorg.apache.poi.xssf.usermodel.XSSFPicture;43 importorg.apache.poi.xssf.usermodel.XSSFShape;44 importorg.apache.poi.xssf.usermodel.XSSFSheet;45 importorg.apache.poi.xssf.usermodel.XSSFWorkbook;46 importorg.openxmlformats.schemas.drawingml.x2006.spreadsheetDrawing.CTMarker;47 /**

48 * Excel转html49 *50 */

51 public classExcelToHtml {52

53 private static String UPLOAD_FILE="E:/";54

55

56 /**

57 * 测试58 *59 *@paramargs60 */

61 public static voidexcelToHtml(String path,String htmlPositon) {62 InputStream is = null;63 String htmlExcel = null;64 String[] str = path.split("/");65 String fileName = str[str.length-1];66 try{67 File sourcefile = newFile(path);68 is = newFileInputStream(sourcefile);69 Workbook wb = WorkbookFactory.create(is);//此WorkbookFactory在POI-3.10版本中使用需要添加dom4j

70 if (wb instanceofXSSFWorkbook) {71 XSSFWorkbook xWb =(XSSFWorkbook) wb;72 htmlExcel = ExcelToHtml.getExcelInfo(xWb, true);73 } else if (wb instanceofHSSFWorkbook) {74 HSSFWorkbook hWb =(HSSFWorkbook) wb;75 htmlExcel = ExcelToHtml.getExcelInfo(hWb, true);76 }77 writeFile(htmlExcel,htmlPositon,fileName);78 } catch(Exception e) {79 e.printStackTrace();80 } finally{81 try{82 is.close();83 } catch(IOException e) {84 e.printStackTrace();85 }86 }87 }88

89 @SuppressWarnings("resource")90 private static voidwriteFile(String content,String htmlPath, String fileName){91 File file2 = newFile(htmlPath);92 StringBuilder sb = newStringBuilder();93 try{94 file2.createNewFile();//创建文件

95

96 sb.append("

"+fileName+"");97 sb.append("
");98 sb.append(content);99 sb.append("
");100 sb.append("");101

102 PrintStream printStream = new PrintStream(newFileOutputStream(file2));103

104 printStream.println(sb.toString());//将字符串写入文件

105

106 } catch(IOException e) {107

108 e.printStackTrace();109 }110

111 }112

113

114 /**

115 * 程序入口方法116 *117 *@paramfilePath118 * 文件的路径119 *@paramisWithStyle120 * 是否需要表格样式 包含 字体 颜色 边框 对齐方式121 *@return

122 *

125 * 字符串126 */

127 public String readExcelToHtml(String filePath, booleanisWithStyle) {128

129 InputStream is = null;130 String htmlExcel = null;131 try{132 File sourcefile = newFile(filePath);133 is = newFileInputStream(sourcefile);134 Workbook wb =WorkbookFactory.create(is);135 if (wb instanceofXSSFWorkbook) {136 XSSFWorkbook xWb =(XSSFWorkbook) wb;137 htmlExcel =ExcelToHtml.getExcelInfo(xWb, isWithStyle);138 } else if (wb instanceofHSSFWorkbook) {139 HSSFWorkb

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
要在Java中使用Apache POIExcel换为HTML图片,你可以使用Apache POI和ApacheI-OOXML依赖项来完成此操作下面是一个简单的示例代码: java import org.apache.poi.ss.usermodel.*; import org.poi.xssf.usermodel.XSSFWorkbook; import org.apache.poi.xssf.usermodel.XSSFPictureData; import java.io.*; import.util.Base64; public ExcelToHtmlConverter { static void main(String[] args) try { //读取Excel文件 fileInputStream = new FileInputStream("input.xlsx"); Workbook workbook = new XSSFWorkbook(fileInputStream); Sheet sheet = workbook.getSheetAt(0); // 创建HTML输出流 FileOutputStream fileOutputStream = new FileOutputStream("output.html"); PrintWriter printWriter = new PrintWriter(fileOutputStream); // 输出HTML头部 printWriter.println("<!DOCTYPE html>"); printWriter.println("<html>"); printWriter.println("<head>"); printWriter.println("<title>Excel to HTML</title>"); printWriter.println("</head>"); printWriter.println("<body>"); // 遍历每行 for (Row row : sheet) { printWriter.println("<tr>"); // 遍历每个单元格 for (Cell cell : row) { printWriter.print("<td>"); // 获取单元格内容 CellType cellType = cell.getCellType(); if (cellType == CellType.STRING) { printWriter.print(cell.getStringCellValue()); } else if (cellType == CellType.NUMERIC) { printWriter.print(cell.getNumericCellValue()); } else if (cellType == CellType.BOOLEAN) { printWriter.print(cell.getBooleanCellValue()); } // 检查单元格是否包图片 if (cell instanceof XSSFSheet) { XSSFSheet xssfSheet = (XSSFSheet) sheet; for (POIXMLDocumentPart part : xssfSheet.getRelations()) { if (part instanceof XSSFPictureData) { XSSFPictureData pictureData = (XSSFPictureData) part; String base64Image = Base64.getEncoder().encodeToString(pictureData.getData()); printWriter.print("<img src=\"data:image/png;base64," + base64Image + "\"/>"); } } } printWriter.println("</td>"); } printWriter.println("</tr>"); } // 输出HTML尾部 printWriter.println("</body>"); printWriter.println("</html>"); printWriter.close(); System.out.println("Excel换为HTML成功!"); } catch (IOException e) { e.printStackTrace(); } } } ``` 此代码将读取名为input.xlsx的Excel文件,并将其换为output.htmlHTML文件。在HTML中,它将遍历每个单元格并将其内容输出为HTML表格。如果单元格包图片,它将使用Base64编码将图片嵌入到HTML中。 请注意,此代码仅处理XLSX格式的Excel文件。如果你的文件是XLS格式,你需要使用HSSFWorkbook和HSSFPictureData来进行处理。 希望这可以帮助到你!
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值