140 lines
4.7 KiB
Java
140 lines
4.7 KiB
Java
package seed.utils;
|
|
|
|
import java.io.BufferedWriter;
|
|
import java.io.File;
|
|
import java.io.FileInputStream;
|
|
import java.io.FileNotFoundException;
|
|
import java.io.FileOutputStream;
|
|
import java.io.IOException;
|
|
import java.io.OutputStreamWriter;
|
|
import java.io.StringWriter;
|
|
import java.io.UnsupportedEncodingException;
|
|
|
|
import javax.xml.parsers.DocumentBuilderFactory;
|
|
import javax.xml.parsers.FactoryConfigurationError;
|
|
import javax.xml.parsers.ParserConfigurationException;
|
|
import javax.xml.transform.OutputKeys;
|
|
import javax.xml.transform.Transformer;
|
|
import javax.xml.transform.TransformerConfigurationException;
|
|
import javax.xml.transform.TransformerException;
|
|
import javax.xml.transform.TransformerFactory;
|
|
import javax.xml.transform.TransformerFactoryConfigurationError;
|
|
import javax.xml.transform.dom.DOMSource;
|
|
import javax.xml.transform.stream.StreamResult;
|
|
|
|
import org.apache.log4j.Logger;
|
|
import org.apache.poi.hssf.converter.ExcelToHtmlConverter;
|
|
import org.apache.poi.hssf.usermodel.HSSFWorkbook;
|
|
import org.apache.poi.poifs.filesystem.POIFSFileSystem;
|
|
|
|
public class SeedCvtXLSToHtml {
|
|
|
|
private Logger log = Logger.getLogger(this.getClass());
|
|
|
|
// public static void main(String args[]){
|
|
//
|
|
// String filePath = "F:/javaConvert/test/test.xls";
|
|
// String output = "F:/javaConvert/test/img/";
|
|
//
|
|
// new SeedCvtXLSToHtml().convert(filePath, output);
|
|
// }
|
|
|
|
public void convert(String filePath, String output) {
|
|
|
|
boolean success = false;
|
|
|
|
if(filePath.endsWith(".xls")) {
|
|
|
|
File file = new File(filePath);
|
|
|
|
if (file.exists()) {
|
|
|
|
POIFSFileSystem fs = null;
|
|
|
|
FileOutputStream fileOutputStream = null;
|
|
OutputStreamWriter outputStreamWriter = null;
|
|
BufferedWriter bufferedWriter = null;
|
|
|
|
try {
|
|
|
|
fs = new POIFSFileSystem(new FileInputStream(filePath));
|
|
|
|
HSSFWorkbook hSSFWorkbook = new HSSFWorkbook(fs);
|
|
|
|
ExcelToHtmlConverter excelToHtmlConverter = new ExcelToHtmlConverter(
|
|
DocumentBuilderFactory.newInstance().newDocumentBuilder().newDocument());
|
|
|
|
excelToHtmlConverter.processWorkbook(hSSFWorkbook);
|
|
|
|
StringWriter stringWriter = new StringWriter();
|
|
|
|
Transformer transformer = TransformerFactory.newInstance().newTransformer();
|
|
|
|
transformer.setOutputProperty(OutputKeys.INDENT, "yes");
|
|
transformer.setOutputProperty(OutputKeys.ENCODING, "utf-8");
|
|
transformer.setOutputProperty(OutputKeys.METHOD, "html");
|
|
|
|
transformer.transform(
|
|
new DOMSource(excelToHtmlConverter.getDocument()),
|
|
new StreamResult(stringWriter));
|
|
|
|
fileOutputStream = new FileOutputStream(output + getFileName(filePath) + ".jsp");
|
|
outputStreamWriter = new OutputStreamWriter(fileOutputStream, "UTF-8");
|
|
bufferedWriter = new BufferedWriter(outputStreamWriter);
|
|
|
|
bufferedWriter.write("<%@ page contentType=\"text/html;charset=utf-8\" %>");
|
|
bufferedWriter.write("\n");
|
|
bufferedWriter.write(stringWriter.toString());
|
|
bufferedWriter.flush();
|
|
|
|
success = true;
|
|
|
|
} catch (TransformerConfigurationException e) {
|
|
log.error("CHECK ERROR:",e);
|
|
success = false;
|
|
} catch (TransformerFactoryConfigurationError e) {
|
|
log.error("CHECK ERROR:",e);
|
|
success = false;
|
|
} catch (TransformerException e) {
|
|
log.error("CHECK ERROR:",e);
|
|
success = false;
|
|
} catch (ParserConfigurationException e) {
|
|
log.error("CHECK ERROR:",e);
|
|
success = false;
|
|
} catch (FactoryConfigurationError e) {
|
|
log.error("CHECK ERROR:",e);
|
|
success = false;
|
|
} catch (FileNotFoundException e) {
|
|
log.error("CHECK ERROR:",e);
|
|
success = false;
|
|
} catch (UnsupportedEncodingException e) {
|
|
log.error("CHECK ERROR:",e);
|
|
success = false;
|
|
} catch (IllegalArgumentException e) {
|
|
log.error("CHECK ERROR:",e);
|
|
success = false;
|
|
} catch (IOException e) {
|
|
log.error("CHECK ERROR:",e);
|
|
success = false;
|
|
} catch (Exception e) {
|
|
log.error("CHECK ERROR:",e);
|
|
success = false;
|
|
} finally{
|
|
if(bufferedWriter!=null){try{bufferedWriter.close();}catch(IOException e){log.error("CHECK ERROR:",e);}}
|
|
if(outputStreamWriter!=null){try{outputStreamWriter.close();}catch(IOException e){log.error("CHECK ERROR:",e);}}
|
|
if(fileOutputStream!=null){try{fileOutputStream.close();}catch(IOException e){log.error("CHECK ERROR:",e);}}
|
|
}
|
|
}
|
|
|
|
if(!success){
|
|
SeedUtils.setSeedDeleteFiles(output, "");
|
|
}
|
|
}
|
|
}
|
|
|
|
private static String getFileName(String filePath){
|
|
int sep = filePath.lastIndexOf("\\") == -1 ? filePath.lastIndexOf("/") : filePath.lastIndexOf("\\");
|
|
return filePath.substring( sep + 1 , filePath.lastIndexOf("."));
|
|
}
|
|
}
|