excel-java如何将html内容转换成xls或是xlsx文件?

问题描述

java如何将html内容转换成xls或是xlsx文件?

java如何将html内容转换成xls或是xlsx文件。
目前html中分为左右两边内容,左边是各种链接,右边是一个list列表,我需要将list列表导出到excel中去。希望高手给予帮助,提供代码,不胜感激

解决方案

你的html里面的list是写死的?还是动态的?如果是动态的从数据库里面取的的话,你可以在取数据的时候直接转换,如果是写死的话,你直接写死在生成时候的
代码里面就可以了。

推荐使用poi,参考:http://zc985552943.iteye.com/blog/1491546

解决方案二:

楼主可以看看第三方的转excel类库 例如poi 之类的 应该有你需要的解决方案

解决方案三:

我这里是个导出的列子应该可以借鉴一下,获取你应该懂的。
还是直接把所以代码给你看看吧。我这里有三种格式的:
private String table;//获得表名
private String[] tableHead;//表头数据
private List objList;//获得表数据
private Field[] ziduan;//获得属性值
private String[] key_names;//从页面获取属性名
private void getData(){
key_names = cpkey.getPrimary_keys();//获得页面上选中的字段
this.table = cpkey.getPrimary_key_table();//获得表名
List list = sdfbiz.queryAllTable(table);//获得表数据
this.objList = new ArrayList();
for (int i = 0; i < list.size(); i++) {
objList.add(list.get(i));//获得包名类名
}
//获取表头数据
this.tableHead = new String[key_names.length];
for (int i = 0; i < key_names.length; i++) {
Config_Primary_Key c = new Config_Primary_Key();
c.setPrimary_key(key_names[i]);
c.setPrimary_key_table(table);
tableHead[i] = sdfbiz.selRowName(c);
}
this.ziduan = new Field[key_names.length];//获得该类的所有属性
for (Object obj : objList) {
for (int i = 0; i < key_names.length; i++) {
try {
ziduan[i] = obj.getClass().getDeclaredField(key_names[i]);
} catch (Exception e) {
e.printStackTrace();
}
}
}
}
//=============================导出excel表===========================================
public String excelprint()throws Exception{
this.getData();
//设置响应方式
response.setContentType("application/vnd.ms-excel;charset=utf-8");
String name = URLEncoder.encode(table+"数据报表.xls", "UTF-8");
response.setHeader("Content-Disposition", "attachment;filename="+name);
//创建一个excel文档
WritableWorkbook book = Workbook.createWorkbook(response.getOutputStream());
//创建sheet工作表
WritableSheet sheet = book.createSheet("报表", 0);
//创建表头
for (int i = 0; i < tableHead.length; i++) {
Label label = new Label(i,0,tableHead[i]);
sheet.addCell(label);
}
//添加表格体
for (int i = 0; i < objList.size(); i++) {
for (int j = 0; j < ziduan.length; j++) {
ziduan[j].setAccessible(true);
sheet.addCell(new Label(j,i+1,ziduan[j].get(objList.get(i))+""));
}
}
book.write();//写execel文档
book.close();
return null;
}
//=============================导出pdf表===========================================
public String pdfprint()throws Exception{
this.getData();
//设置响应方式
response.setContentType("application/x-download");
String name = URLEncoder.encode(table+"报表.pdf", "UTF-8");
response.setHeader("Content-Disposition", "attachment;filename="+name);
//创建一个空的pdf文档
com.lowagie.text.Document doc = new com.lowagie.text.Document(PageSize.A4.rotate());//rotate纸张横向
//将pdf往浏览器输出
PdfWriter writer = PdfWriter.getInstance(doc, response.getOutputStream());
doc.open();
//引入字体
BaseFont bf = BaseFont.createFont("STSong-Light", "UniGB-UCS2-H", false);

    //表头字体
    Font font = new Font(bf,8,Font.BOLD,Color.RED);
    //表格体字体
    Font font1 = new Font(bf,10,Font.COURIER,Color.black);
    //创建表格
    Table tab = new Table(key_names.length, objList.size());
    tab.setPadding(3);
    //生成表头
    for (int i = 0; i < tableHead.length; i++) {
        Chunk ck = new Chunk(tableHead[i],font);
        com.lowagie.text.Cell cell = new com.lowagie.text.Cell(ck);
        tab.addCell(cell);
        //设置横向居中
        cell.setHorizontalAlignment(com.lowagie.text.Cell.ALIGN_CENTER);
        //设置纵向居中
        cell.setVerticalAlignment(com.lowagie.text.Cell.ALIGN_MIDDLE);
    }
    //生成表格体
    for (int i = 0; i < objList.size(); i++) {
        for (int j = 0; j < ziduan.length; j++) {
            ziduan[j].setAccessible(true);
            Chunk ck_name = new Chunk(ziduan[j].get(objList.get(i))+"",font1);
            com.lowagie.text.Cell c = new com.lowagie.text.Cell(ck_name);
            tab.addCell(c);
        }
    }
    //循环设置居中
    for (int i = 0; i <= objList.size(); i++) {
        for (int j = 0; j < key_names.length; j++) {
            com.lowagie.text.Cell cell = (com.lowagie.text.Cell)tab.getElement(i, j);
            //设置横向居中
            cell.setHorizontalAlignment(com.lowagie.text.Cell.ALIGN_CENTER);
            //设置纵向居中
            cell.setVerticalAlignment(com.lowagie.text.Cell.ALIGN_MIDDLE);
        }
    }
    doc.add(tab);//将表格放入pdf文档
    doc.close();//操作完毕,关闭文档对象
    writer.close();
    doc.close();
    return null;
}
//=============================导出xml表===========================================
public String xmlprint() throws Exception{
    this.getData();
    //设置响应方式
    response.setContentType("application/vnd.ms-xml;charset=utf-8");
    String name = URLEncoder.encode(table+"数据报表.xml", "UTF-8");
    response.setHeader("Content-Disposition", "attachment;filename="+name);
    DocumentBuilderFactory dbf = DocumentBuilderFactory.newInstance();
    DocumentBuilder builder = dbf.newDocumentBuilder();
    Document doc = builder.newDocument();//空白文档
    Element root = doc.createElement("table");//创建根节点
    doc.appendChild(root);

    for (int i = 0; i < tableHead.length; i++) {
        Element entity = doc.createElement(table);
        Element shux = doc.createElement(key_names[i]);
        shux.setTextContent(tableHead[i]);
        entity.appendChild(shux);
        root.appendChild(entity);
    }

    for (int i = 0; i < objList.size(); i++) {
        for (int j = 0; j < ziduan.length; j++) {
            ziduan[j].setAccessible(true);
            Element entity = doc.createElement(table);
            Element shux = doc.createElement(key_names[j]);
            shux.setTextContent(ziduan[j].get(objList.get(i))+"");
            entity.appendChild(shux);
            root.appendChild(entity);
        }
    }
    TransformerFactory tff = TransformerFactory.newInstance();
    Transformer tf = tff.newTransformer();
    DOMSource ds = new DOMSource(doc);//指定输出源
    //StreamResult sr = new StreamResult(new File("f:/"+table+".xml"));
    StreamResult sr = new StreamResult(response.getOutputStream());
    tf.transform(ds, sr);
    return null;
}

解决方案四:

巧用Java程序把Word转换成Html文件
用Java程序把Word转换成Html文件
----------------------

时间: 2024-11-02 05:57:56

excel-java如何将html内容转换成xls或是xlsx文件?的相关文章

方法-java可以把点号转换成反斜杠吗

问题描述 java可以把点号转换成反斜杠吗 RT: 问题描述 String s="cn.sun.dao"; String d=s.replaceAll(".","/");//这个方法实际上匹配的是正则表达式? 对点号进行替换会有问题,其他的没什么问题.有没有其他方法可以替换点号啊! 解决方案 上当了,回复后CSDN会将两个反斜杠转换成一个,上面回复的内容中都出现了这个问题,请以这个答案为准. replaceAll方法中替换支持正则表达式,你的代码

技术转型-java实现语音存储和转换成文本

问题描述 java实现语音存储和转换成文本 java:可以通过什么技术或者有什么API可以实现语音相互转换,谁会实现,感激不尽 解决方案 你这个是语音识别啊大哥

Excel表格中快速实现元转换成以万元显示的方法

  Excel表格中快速实现元转换成以万元显示的方法 左表为源表,右表为显示表.右表旁有一个框(万元). 点击框,框内会画一个勾.右表马上会转换成以万元显示. 这样的转换方便吧.下面本文带大家一起动手制作. 制作步骤: 1.开发工具(如果没有,可以通过文件 - 选项 - 自定义功能区 - 右侧框中选取开发工具)- 插入 - 表单控件中选取复选框 - 按左键不松在表中拖画出来. 2.选取复选框(在复选框上右键单击) - 右键菜单中点击"设置控件格式"打开设置对象格式窗口,在窗口中设置单元

java-word文档、excel文档等office软件转换成swf格式,不要安装任何东西的

问题描述 word文档.excel文档等office软件转换成swf格式,不要安装任何东西的 我用的是FlexPaper来在线阅读文档,可是要转换成swf文件 解决方案 你这个不太可能实现啊.转换都是用现成的软件实现的,你不能安装软件就只能自己开发这些代码,free有难度.还是采用一些免费的软件来进行吧.

java-请教大神,再JAVA里 怎么把rgba转换成#类型呢??

问题描述 请教大神,再JAVA里 怎么把rgba转换成#类型呢?? 我现在得到的是一个 string 类型 rgba(102 0 255 0.506)怎么把这个转换成 # 这样的类型呢?我的意思是转换成 #33333 这样的? 解决方案 RGBA你有没有查过资料?最后的那个数值是alpha.是透明度.这个alpha和RGB本身是相互独立的.rgb(abc)对应的是(a<<16 | b<<8 | c)得到的表达式应该是:#ffffff 这样的,6个十六进制数表示的. 你写的#3333

在java中如何将输入流转换成数组

问题描述 在java中如何将输入流转换成数组 客户端发送数组,服务器端接受并排序.如何将接受的输入流转换成数组 解决方案 http://outofmemory.cn/code-snippet/11389/java-convert-inputstream-to-byte-array 解决方案二: 如何将伪数组转换成数组 解决方案三: apache comments io包中的IOUtils中有现成的方法 解决方案四: 字符串转化成整形数组?字节数组取出来的值就是0-127的数.

生成富文本编辑器生成内容转换成json格式,解析出错,在mysql里面用什么类型保存

问题描述 生成富文本编辑器生成内容转换成json格式,解析出错,在mysql里面用什么类型保存 富文本怎么保存?保存在mysql里面用什么样的类型,还有就是能够获取到富文本的内容(包括标签什么的),用json怎么转换,用过转义也不行?求助啊!!!!

.net-跪求方法把字符串内容转换成类

问题描述 跪求方法把字符串内容转换成类 比如有这么一个方法,其中的T是个类,比如这个类名叫Person,但是我只能知道string p="Person";,怎样才能转换成Person类,然后调用这个方法 public static void ResponoseXml<T>(T response, string code, string msg) { response.GetType().GetProperty("ErrCode").SetValue(re

请问,ASP.net如何把带html格式的内容转换成纯文本的文字

问题描述 请问,ASP.net如何把带html格式的内容转换成纯文本的文字 解决方案 解决方案二:使用正则表达式对字符串进行过滤解决方案三:publicstringLostHTML(stringStr){stringRe_Str="";if(Str!=null){if(Str!=string.Empty){stringPattern="<\/*[^<>]*>";Re_Str=Regex.Replace(Str,Pattern,"&q