Exl转换成html的方法_html/css_WEB-ITnose
此方法采用了一个插件:jacob-1.15-M4,这个插件可以将office转换成html,在此我只介绍了一种,将Exl转换成html,转换后的html中有的border线为0.5px,在有的浏览器中不识别0.5px的border线,需要将生成的css中的0.5px,转换成1px,在系统中如果需要多次转换的话建议写一个单例模式,否则的话转换几次之后你电脑的内存就被撑爆了,原因很简单,就是每一次转换都会启动一次Exl程序,启动的多了系统内存就沾满了,所以,建议还是写成单例模式,废话不多说,直接贴代码:
插件需要下载的可以点击此处下载:http://download.csdn.net/detail/s592652578/8446163
package com.odon.common.util;
import java.io.BufferedReader;
import java.io.File;
import java.io.FileOutputStream;
import java.io.FileReader;
import java.io.IOException;
import com.jacob.activeX.ActiveXComponent;
import com.jacob.com.Dispatch;
import com.jacob.com.Variant;
public classExlToHtm {
//单例模式
private static ExlToHtm exlToHtm=null;
public static ExlToHtm getExlToHtm(){
if(exlToHtm==null)
exlToHtm=new ExlToHtm();
return exlToHtm;
}
public static final int EXCEL_HTML = 44;
public static final ActiveXComponent app = new ActiveXComponent("Excel.Application");// 启动exl
/**
* EXCEL转HTML
* @param xlsfile EXCEL文件全路径
* @param htmlfile 转换后HTML存放路径
*/
public synchronized void excelToHtml(String xlsfile, Stringhtmlfile){
// ActiveXComponentapp = new ActiveXComponent("Excel.Application"); // 启动exl
try {
app.setProperty("Visible",newVariant(false));
Dispatchexcels = app.getProperty("Workbooks").toDispatch();
Dispatchexcel = Dispatch.invoke(
excels,
"Open",
Dispatch.Method,
new Object[] { xlsfile, new Variant(false),
new Variant(true) }, new int[1]).toDispatch();
Dispatch.invoke(excel,"SaveAs",Dispatch.Method,newObject[] {
htmlfile,newVariant(EXCEL_HTML)}, newint[1]);
Variantf = newVariant(false);
Dispatch.call(excel,"Close",f);
}catch (Exception e){
e.printStackTrace();
}finally{
app.invoke("Quit", new Variant[] {});
}
}
/**
* 修改css样式
* @param filePath
* @param cssPath
*/
public static void readCss(StringfilePath,String cssPath) {
BufferedReaderbr = null;
Stringline = null;
StringBufferbuf = newStringBuffer();
Stringcontent = null;
Filetxt=newFile(cssPath);
FileOutputStreamfos = null;
try {
fos= newFileOutputStream(txt);
// 根据文件路径创建缓冲输入流
br= newBufferedReader(newFileReader(filePath));
// 循环读取文件的每一行, 对需要修改的行进行修改, 放入缓冲对象中
while ((line = br.readLine())!= null){
// 此处根据实际需要修改某些行的内容
if(line.indexOf(":.5pt")>-1){
line= line.replace(":.5pt", ":1pt");
line= line + "\r";
}
buf.append(line);
}
//判断文件是否存在
if(!txt.exists()){
txt.createNewFile();
}
content= buf.toString();
byte bytes[]=new byte[1024];
bytes=content.getBytes(); //新加的
intb=content.length(); //改
fos.write(bytes,0,b);
}catch(Exception e) {
e.printStackTrace();
}finally{
// 关闭流
if (br != null) {
try {
br.close();
}catch(IOException e) {
br= null;
}
}
if( fos != null){
try {
fos.close();
}catch(Exception e2) {
e2.printStackTrace();
}
}
}
}
}

热AI工具

Undresser.AI Undress
人工智能驱动的应用程序,用于创建逼真的裸体照片

AI Clothes Remover
用于从照片中去除衣服的在线人工智能工具。

Undress AI Tool
免费脱衣服图片

Clothoff.io
AI脱衣机

AI Hentai Generator
免费生成ai无尽的。

热门文章

热工具

记事本++7.3.1
好用且免费的代码编辑器

SublimeText3汉化版
中文版,非常好用

禅工作室 13.0.1
功能强大的PHP集成开发环境

Dreamweaver CS6
视觉化网页开发工具

SublimeText3 Mac版
神级代码编辑软件(SublimeText3)

热门话题

本文讨论了HTML< Progress>元素,其目的,样式和与< meter>元素。主要重点是使用< progress>为了完成任务和LT;仪表>对于stati

本文讨论了html< datalist>元素,通过提供自动完整建议,改善用户体验并减少错误来增强表格。Character计数:159

本文讨论了HTML< meter>元素,用于在一个范围内显示标量或分数值及其在Web开发中的常见应用。它区分了< meter>从< progress>和前

本文讨论了使用HTML5表单验证属性,例如必需的,图案,最小,最大和长度限制,以直接在浏览器中验证用户输入。

本文解释了HTML5< time>语义日期/时间表示的元素。 它强调了DateTime属性对机器可读性(ISO 8601格式)的重要性,并在人类可读文本旁边,增强Accessibilit

本文讨论了视口元标签,这对于移动设备上的响应式Web设计至关重要。它解释了如何正确使用确保最佳的内容缩放和用户交互,而滥用可能会导致设计和可访问性问题。

本文讨论了< iframe>将外部内容嵌入网页,其常见用途,安全风险以及诸如对象标签和API等替代方案的目的。
