(POI)Excel格式转Html格式

更新时间:2023-07-17 10:02:37 阅读: 评论:0

(POI)Excel格式转Html格式
Demo结构和引⽤的Jar包
源代码(TestDemo.java)
POI中将Excel转换为HTML⽅法仅能转换HSSFWorkBook类型(即03版xls),故可以先将读取的xlsx⽂件转换成xls⽂件再调⽤该⽅法统⼀处理package test;
import java.io.ByteArrayOutputStream;
import java.io.FileInputStream;
import java.io.InputStream;
import java.util.ArrayList;
l.parrs.DocumentBuilderFactory;
l.transform.OutputKeys;
l.transform.Transformer;
l.transform.TransformerFactory;
l.transform.dom.DOMSource;
l.transform.stream.StreamResult;
import org.apache.verter.ExcelToHtmlConverter;
棠棣import org.apache.poi.hssf.urmodel.HSSFWorkbook;
import org.apache.poi.xssf.urmodel.XSSFWorkbook;
public class TestDemo {
final static String path = "D:\\EclipWorkspace\\ExcelToHtmlDemo\\ExcelToHtml\\";
final static String file = "TestExcel.xlsx";
private static final String EXCEL_XLS = "xls";
素描手private static final String EXCEL_XLSX = "xlsx";
public static void main(String[] args)
{
羽毛球排名
try{
InputStream input = new FileInputStream(path +"/"+ file);
HSSFWorkbook excelBook = new HSSFWorkbook();
//判断Excel⽂件将07+版本转换为03版本
dsWith(EXCEL_XLS)){  //Excel 2003
excelBook = new HSSFWorkbook(input);
}
el dsWith(EXCEL_XLSX)){  // Excel 2007/2010
Transform xls = new Transform();
XSSFWorkbook workbookOld = new XSSFWorkbook(input);
  ansformXSSF(workbookOld, excelBook);
}
ExcelToHtmlConverter excelToHtmlConverter = new wInstance().newDocumentBuilder().newDocument());                  //去掉Excel头⾏
excelToHtmlConverter.tOutputColumnHeaders(fal);
//去掉Excel⾏号
excelToHtmlConverter.tOutputRowNumbers(fal);
excelToHtmlConverter.processWorkbook(excelBook);
Document htmlDocument = Document();
ByteArrayOutputStream outStream = new ByteArrayOutputStream();
DOMSource domSource = new DOMSource(htmlDocument);
StreamResult streamResult = new StreamResult(outStream);
TransformerFactory tf = wInstance();
Transformer rializer = tf.newTransformer();
rializer.tOutputProperty(OutputKeys.ENCODING, "gb2312");
rializer.tOutputProperty(OutputKeys.INDENT, "yes");
草莓啥时候种植
rializer.tOutputProperty(OutputKeys.METHOD, "html");
outStream.clo();
//Excel转换成Html
String content = new ByteArray());
System.out.println(content);
}
catch(Exception e) {
e.printStackTrace();
}他什么都不想
}
}
源代码(Transform.java) 将xlsx⽂件转换成xls⽂件。(可以处理合并单元格,边框等格式问题)
package test;
import java.util.HashMap;
import org.apache.poi.hssf.urmodel.HSSFCell;
import org.apache.poi.hssf.urmodel.HSSFCellStyle;
import org.apache.poi.hssf.urmodel.HSSFFont;
import org.apache.poi.hssf.urmodel.HSSFRow;
import org.apache.poi.hssf.urmodel.HSSFSheet;
import org.apache.poi.hssf.urmodel.HSSFWorkbook;
import org.apache.poi.ss.urmodel.Cell;
import org.apache.poi.ss.urmodel.DataFormat;
import org.apache.poi.ss.urmodel.Row;
import org.apache.poi.ss.urmodel.Sheet;
import org.apache.poi.ss.util.CellRangeAddress;
王旁
import org.apache.poi.xssf.urmodel.XSSFCell;
import org.apache.poi.xssf.urmodel.XSSFCellStyle;
import org.apache.poi.xssf.urmodel.XSSFFont;
import org.apache.poi.xssf.urmodel.XSSFRow;
import org.apache.poi.xssf.urmodel.XSSFSheet;
import org.apache.poi.xssf.urmodel.XSSFWorkbook;
public class Transform {
private int lastColumn = 0;
private HashMap<Integer, HSSFCellStyle> styleMap = new HashMap();
public void transformXSSF(XSSFWorkbook workbookOld, HSSFWorkbook workbookNew) {          HSSFSheet sheetNew;
XSSFSheet sheetOld;
workbookNew.MissingCellPolicy());
for (int i = 0; i < NumberOfSheets(); i++) {
sheetOld = SheetAt(i);
sheetNew = SheetName());
sheetNew = SheetName());
蜘蛛女皇
}
}
private void transform(XSSFWorkbook workbookOld, HSSFWorkbook workbookNew,
XSSFSheet sheetOld, HSSFSheet sheetNew) {
sheetNew.tDisplayFormulas(sheetOld.isDisplayFormulas());
sheetNew.tDisplayGridlines(sheetOld.isDisplayGridlines());
sheetNew.DisplayGuts());
sheetNew.tDisplayRowColHeadings(sheetOld.isDisplayRowColHeadings());
sheetNew.tDisplayZeros(sheetOld.isDisplayZeros());
sheetNew.FitToPage());
sheetNew.HorizontallyCenter());
sheetNew.tMargin(Sheet.BottomMargin,
sheetNew.tMargin(Sheet.FooterMargin,
sheetNew.tMargin(Sheet.HeaderMargin,
sheetNew.tMargin(Sheet.LeftMargin,
sheetNew.tMargin(Sheet.RightMargin,
sheetNew.tMargin(Sheet.TopMargin, Margin(Sheet.TopMargin));
sheetNew.tPrintGridlines(sheetNew.isPrintGridlines());
sheetNew.tRightToLeft(sheetNew.isRightToLeft());
sheetNew.RowSumsBelow());
sheetNew.RowSumsRight());
sheetNew.VerticallyCenter());
HSSFRow rowNew;
for (Row row : sheetOld) {
rowNew = RowNum());
if (rowNew != null)
}
for (int i = 0; i < this.lastColumn; i++) {
sheetNew.tColumnWidth(i, ColumnWidth(i));
sheetNew.tColumnHidden(i, sheetOld.isColumnHidden(i));
}
for (int i = 0; i < NumMergedRegions(); i++) {
CellRangeAddress merged = MergedRegion(i);
sheetNew.addMergedRegion(merged);
}
}
private void transform(XSSFWorkbook workbookOld, HSSFWorkbook workbookNew,
红月亮图片
XSSFRow rowOld, HSSFRow rowNew) {
HSSFCell cellNew;
rowNew.Height());
for (Cell cell : rowOld) {
cellNew = ColumnIndex(),
if (cellNew != null)
cellNew);
}
this.lastColumn = Math.max(this.lastColumn, LastCellNum());
}
private void transform(XSSFWorkbook workbookOld, HSSFWorkbook workbookNew,
XSSFCell cellOld, HSSFCell cellNew) {
cellNew.CellComment());
Integer hash = CellStyle().hashCode();
if (this.styleMap != null && !ainsKey(hash)) {
(HSSFCellStyle) ateCellStyle());
}
cellNew.tCellStyle((hash));
switch (CellType()) {
ca Cell.CELL_TYPE_BLANK:
break;
ca Cell.CELL_TYPE_BOOLEAN:
cellNew.BooleanCellValue());
break;
ca Cell.CELL_TYPE_ERROR:
cellNew.ErrorCellValue());
break;
ca Cell.CELL_TYPE_FORMULA:
cellNew.CellFormula());
break;
ca Cell.CELL_TYPE_NUMERIC:
cellNew.NumericCellValue());
break;
ca Cell.CELL_TYPE_STRING:
cellNew.StringCellValue());
break;
default:
System.out.println("transform: Unbekannter Zellentyp "
+ CellType());
}
}
private void transform(XSSFWorkbook workbookOld, HSSFWorkbook workbookNew,              Integer hash, XSSFCellStyle styleOld, HSSFCellStyle styleNew) {
styleNew.Alignment());
styleNew.BorderBottom());
styleNew.BorderLeft());
styleNew.BorderRight());
styleNew.BorderTop());
styleNew.ansform(workbookOld, workbookNew,
styleNew.FillBackgroundColor());
styleNew.FillForegroundColor());
styleNew.FillPattern());
styleNew.ansform(workbookNew,
(XSSFFont) Font()));
styleNew.Hidden());
styleNew.Indention());
styleNew.Locked());
styleNew.VerticalAlignment());
styleNew.WrapText());
this.styleMap.put(hash, styleNew);
}
private short transform(XSSFWorkbook workbookOld, HSSFWorkbook workbookNew,              short index) {
DataFormat formatOld = ateDataFormat();
DataFormat formatNew = ateDataFormat();
Format(index));
}
private HSSFFont transform(HSSFWorkbook workbookNew, XSSFFont fontOld) {
HSSFFont fontNew = ateFont();
fontNew.Boldweight());
fontNew.CharSet());
fontNew.Color());
fontNew.FontName());
fontNew.FontHeight());
fontNew.Italic());
fontNew.Strikeout());
fontNew.TypeOfft());
fontNew.Underline());
return fontNew;
}
}

本文发布于:2023-07-17 10:02:37,感谢您对本站的认可!

本文链接:https://www.wtabcd.cn/fanwen/fan/82/1101161.html

版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系,我们将在24小时内删除。

标签:转换   边框   版本   格式   处理   羽毛球   草莓
相关文章
留言与评论(共有 0 条评论)
   
验证码:
推荐文章
排行榜
Copyright ©2019-2022 Comsenz Inc.Powered by © 专利检索| 网站地图