swing导出html到excel

1  ShowCopDetal

package com.product;

import java.awt.BorderLayout;
import java.awt.Color;
import java.awt.Component;
import java.awt.Container;
import java.awt.Desktop;
import java.awt.Dimension;
import java.awt.EventQueue;
import java.awt.Font;
import java.awt.Graphics;
import java.awt.Graphics2D;
import java.awt.GridLayout;
import java.awt.color.ColorSpace;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import java.awt.image.BufferedImage;
import java.awt.image.ColorConvertOp;
import java.io.File;
import java.io.FileOutputStream;
import java.io.IOException;
import java.net.URISyntaxException;
import java.text.SimpleDateFormat;
import java.util.ArrayList;
import java.util.Date;
import java.util.List; import javax.swing.AbstractAction;
import javax.swing.AbstractButton;
import javax.swing.BorderFactory;
import javax.swing.Box;
import javax.swing.BoxLayout;
import javax.swing.JButton;
import javax.swing.JCheckBox;
import javax.swing.JComponent;
import javax.swing.JEditorPane;
import javax.swing.JFileChooser;
import javax.swing.JFrame;
import javax.swing.JLabel;
import javax.swing.JOptionPane;
import javax.swing.JPanel;
import javax.swing.JScrollPane;
import javax.swing.JTextField;
import javax.swing.ScrollPaneLayout;
import javax.swing.SwingConstants;
import javax.swing.UIManager;
import javax.swing.WindowConstants;
import javax.swing.event.HyperlinkEvent;
import javax.swing.event.HyperlinkListener;
import javax.swing.filechooser.FileFilter; import jxl.Workbook;
import jxl.write.Label;
import jxl.write.WritableCellFormat;
import jxl.write.WritableFont;
import jxl.write.WritableSheet;
import jxl.write.WritableWorkbook; public class ShowCopDetal extends JPanel{
// 内置了本地系统桌面操作支持
private Desktop desktop; private static final long serialVersionUID = 1L; // html内容
// private static final String HTML_TEXT = "<html><font color='red'><a href=\"http://www.helpsoff.com.cn\" target=\"_blank\">支持SOFF,插件无罪</a></font>";
private static List contentheader;
private static List contentbody; public static List getContentheader() {
return contentheader;
} public static void setContentheader(List contentheader) {
ShowCopDetal.contentheader = contentheader;
} public static List getContentbody() {
return contentbody;
} public static void setContentbody(List contentbody) {
ShowCopDetal.contentbody = contentbody;
} public ShowCopDetal() {} public static void main(String[] args) {
EventQueue.invokeLater(new Runnable() {
public void run() {
//createGUI();
scrollpanelinframe();
}
});
} public static void createGUI() { JFrame frame = new JFrame("在Swing中使用Html标签");
frame.setDefaultCloseOperation(WindowConstants.EXIT_ON_CLOSE);
frame.setSize(new Dimension(450, 200)); frame.getContentPane().add(new ShowCopDetal()); frame.setResizable(false);
frame.setLocationRelativeTo(null); frame.setAlwaysOnTop(true);
frame.setVisible(true);
}
static JFrame frame = new JFrame("model detail"); /////////////////////////////////test/////////////////////////////////////
public static void scrollpanelinframe() { //init data
testENT a=new testENT("zhangsan","23","china");
testENT b=new testENT("lisi","26","usa");
testENT c=new testENT("mhmd","28","my"); testENT aa=new testENT("azhangsan","a23","china");
testENT bb=new testENT("blisi","b26","usa");
testENT cc=new testENT("cmhmd","c28","my"); List ds=new ArrayList();
ds.add(a);
ds.add(b);
ds.add(c);
List ds2=new ArrayList();
ds2.add(aa);
ds2.add(bb);
ds2.add(cc);
List totalsds=new ArrayList();
totalsds.add(ds);
totalsds.add(ds2); ShowCopDetal.setContentbody(totalsds); String[] headerstr={"Colum 1","Colum 2","Colum 3","Colum 4"};
ShowCopDetal.setContentheader(java.util.Arrays.asList(headerstr)); frame.setDefaultCloseOperation(WindowConstants.EXIT_ON_CLOSE);
frame.setSize(new Dimension(1100, 760)); StringBuffer initialText=new StringBuffer();
initialText.append("<html>\n"); //initialText.append("<div style=\"border:2px solid ;\">"); for(int v=0;v<totalsds.size();v++)
{ initialText.append("<div style=\"border:10px solid orange;\">");
initialText.append("<fieldset>");
initialText.append("<legend>{infomation of "+v+" }</legend>");
initialText.append("<table >");
initialText.append("<tr style=\"font-size:2px color:red\"><td colSpan=\"9\">****************************************************************************************</td></tr>"); for(int n=0;n<((List)totalsds.get(v)).size();n++)
{
testENT te=(testENT) ((List)totalsds.get(v)).get(n); initialText.append("<tr><td colSpan=\"9\">_______________"+te.getName()+"_________</td></tr>"); initialText.append("<tr>");
initialText.append("<td>");
initialText.append("<font size=+2 color=green>");
initialText.append(te.getName());
initialText.append("</font>");
initialText.append("</td>"); initialText.append("<td>");
initialText.append("<font size=+2 color=red>");
initialText.append(te.getAge());
initialText.append("</font>");
initialText.append("</td>"); initialText.append("<td>");
initialText.append("<font size=+2 color=yellow>");
initialText.append(te.getCountry());
initialText.append("</font>");
initialText.append("</td>"); initialText.append("</tr>");
// initialText.append("<tr><td colSpan=\"9\" style=\"border-bottom:#FF0000 solid 1px; width:50%; background-color:#00CC33; text-align:center; line-height:24px;\"></td></tr>"); }
initialText.append("</table>");
initialText.append("</fieldset>");
initialText.append("</div>"); }
System.out.println(initialText);
JButton btsave=new JButton("Save");
Dimension preferredSize = new Dimension(10,20);//设置尺寸
btsave.setPreferredSize(preferredSize);
btsave.setLocation(10, 10);
//btsave.addActionListener(this);
btsave.addActionListener(new ActionListener() { @Override
public void actionPerformed(ActionEvent e) {
// TODO Auto-generated method stub
JOptionPane.showMessageDialog(null,"start");
//selectSavePath();
//List<String[]> list
// getcontentbody();
// getcontentheader(); List list=new ArrayList();
list.add(0,ShowCopDetal.getContentheader());
list.add(1,ShowCopDetal.getContentbody());
try {
writeExcel(list);
} catch (Exception e1) {
// TODO Auto-generated catch block
e1.printStackTrace();
}
} }); //JPanel rightPanel=new JPanel();
JScrollPane rightPanel = new JScrollPane();
rightPanel.setLayout(new ScrollPaneLayout()); JLabel theLabel = new JLabel(initialText.toString()); theLabel.setVerticalAlignment(SwingConstants.TOP);
theLabel.setHorizontalAlignment(SwingConstants.NORTH_EAST);
theLabel.setLocation(100, 10); //JScrollPane.UPPER_LEFT_CORNER
rightPanel.setBorder(BorderFactory.createCompoundBorder(
BorderFactory.createTitledBorder("preview detail"),
BorderFactory.createEmptyBorder(40,10,20,20))); // rightPanel.setColumnHeaderView(btsave);
rightPanel.setRowHeaderView(btsave);
//rightPanel.setViewportView(btsave);
rightPanel.setViewportView(theLabel);
//rightPanel.setLayout(new ScrollPaneLayout()); // frame.add(jscPanel);
frame.add(rightPanel); frame.setResizable(true);
frame.setLocationRelativeTo(null); frame.setAlwaysOnTop(false);
frame.setVisible(true);
} public static void writeExcel(List list)
throws Exception {
//弹出保存框
JFileChooser file = ShowCopDetal.getFile();
//判断是否关闭或取消保存框
if (file != null) {
//的到保存路径
String fpath=file.getSelectedFile().getAbsolutePath()+".xls";
//创建文件
File f = new File(fpath);
WritableWorkbook wwb = Workbook.createWorkbook(new FileOutputStream(f));
WritableSheet ws = wwb.createSheet("TestSheet1", 0);
// 设置字体样式
WritableFont wfc = new WritableFont(WritableFont.ARIAL, 16, WritableFont.BOLD, false);
WritableCellFormat wcfFC = new WritableCellFormat(wfc);
// 遍历列头字段名
for (int i = 0; i < ((List)list.get(0)).size(); i++) {
Label labelC = new jxl.write.Label(i, 0, ((List)list.get(0)).get(i).toString(), wcfFC);
ws.addCell(labelC);
}
// 遍历内容
for (int i = 1; i < list.size(); i++) {
for (int j = 0; j < ((List)list.get(i)).size(); j++) {
Label labelC = new jxl.write.Label(j, i, ((List)list.get(i)).get(j).toString()); ws.addCell(labelC);
}
}
// 写入Exel工作表
wwb.write();
// 关闭Excel工作薄对象
wwb.close();
//消息框
JOptionPane.showMessageDialog(null, "File is saved to:"+fpath,"Save success!",JOptionPane.INFORMATION_MESSAGE);
}
} public static JFileChooser getFile() {
//默认打开D盘
JFileChooser file = new MyChooser("");
// 下面这句是去掉显示所有文件这个过滤器。
file.setAcceptAllFileFilterUsed(false);
// 添加excel文件的过滤器
file.addChoosableFileFilter(new ExcelFileFilter("xls"));
int result = file.showSaveDialog(null);
// JFileChooser.APPROVE_OPTION是个整型常量,代表0。就是说当返回0的值我们才执行相关操作,否则什么也不做。
if (result == JFileChooser.APPROVE_OPTION) {
// 获得你选择的文件绝对路径。并输出。当然,我们获得这个路径后还可以做很多的事。
String path = file.getSelectedFile().getAbsolutePath();
System.out.println(path);
} else {
file = null;
System.out.println("You have canceled and colosed the window!");
}
return file;
}
//文件过滤器 只保存xls文件
private static class ExcelFileFilter extends FileFilter {
String ext;
ExcelFileFilter(String ext) {
this.ext = ext;
}
@Override
public boolean accept(File f) {
if (f.isDirectory()) {
return true;
}
String fileName = f.getName();
int index = fileName.lastIndexOf('.');
if (index > 0 && index < fileName.length() - 1) {
String extension = fileName.substring(index + 1).toLowerCase();
if (extension.equals(ext))
return true;
}
return false;
}
@Override
public String getDescription() {
if (ext.equals("xls")) {
return "Microsoft Excel file(*.xls)";
}
return "";
}
} private static class MyChooser extends JFileChooser { private static final long serialVersionUID = 1L;
MyChooser(String path) {
super(path);
}
public void approveSelection() {
File file = this.getSelectedFile();
if (file.exists()) {
int copy = JOptionPane.showConfirmDialog(null, "Do you want to overwrite the current file?",
"Save", JOptionPane.YES_NO_OPTION,
JOptionPane.QUESTION_MESSAGE);
if (copy == JOptionPane.YES_OPTION)
super.approveSelection();
} else
super.approveSelection();
}
} }

2 bean 类

package com.product;

public class testENT {

    public testENT (String name,String age,String country)
{
this.name=name;
this.age=age;
this.country=country;
}
private String name;
private String age;
private String country;
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
public String getAge() {
return age;
}
public void setAge(String age) {
this.age = age;
}
public String getCountry() {
return country;
}
public void setCountry(String country) {
this.country = country;
} }

3 依赖jar   :

jxl-2.4.2.jar

4 截图:

swing导出html到excel的更多相关文章

  1. 1.ASP.NET MVC使用EPPlus,导出数据到Excel中

    好久没写博客了,今天特地来更新一下,今天我们要学习的是如何导出数据到Excel文件中,这里我使用的是免费开源的Epplus组件. 源代码下载:https://github.com/caofangshe ...

  2. 导出数据到Excel --使用ExcelReport有感

    先看图,这是几个月前用NPOI写的导出数据到Excel,用了上百行代码,而且难控制,导出来也比较难看 excel打开的效果 下面是我用ExcelReport类库导出到Excel的操作 1.首先引用Ex ...

  3. 使用Open xml 操作Excel系列之二--从data table导出数据到Excel

    由于Excel中提供了透视表PivotTable,许多项目都使用它来作为数据分析报表. 在有些情况下,我们需要在Excel中设计好模板,包括数据源表,透视表等, 当数据导入到数据源表时,自动更新透视表 ...

  4. Dynamics CRM导出数据到Excel

    原创地址:http://www.cnblogs.com/jfzhu/p/4276212.html 转载请注明出处 Pivot Table是微软BI的一个重要工具,所以这里讲一下Dynamics CRM ...

  5. MVC导出数据到EXCEL新方法:将视图或分部视图转换为HTML后再直接返回FileResult

    导出EXCEL方法总结 MVC导出数据到EXCEL的方法有很多种,常见的是: 1.采用EXCEL COM组件来动态生成XLS文件并保存到服务器上,然后转到该文件存放路径即可: 优点:可设置丰富的EXC ...

  6. C#实现Excel模板导出和从Excel导入数据

    午休时间写了一个Demo关于Excel导入导出的简单练习 1.窗体 2.引用office命名空间 添加引用-程序集-扩展-Microsoft.Office.Interop.Excel 3.封装的Exc ...

  7. php导出数据到excel,防止身份证等数字字符格式变成科学计数的方法

    而关于php的也有,但是大多都是用phpExcel导出的方法或者spreadsheet等类或者控件之类的导出方法,而我所在维护的系统却用很简单的方法,如下,网上很少有讲如何设置要导出数据的EXcel格 ...

  8. NPOI导出数据到Excel

    NPOI导出数据到Excel   前言 Asp.net操作Excel已经是老生长谈的事情了,可下面我说的这个NPOI操作Excel,应该是最好的方案了,没有之一,使用NPOI能够帮助开发者在没有安装微 ...

  9. 【转】c# winform DataGridView导出数据到Excel中,可以导出当前页和全部数据

    准备工作就是可以分页的DataGridView,和两个按钮,一个用来导出当前页数据到Excel,一个用来导出全部数据到Excel 没有使用SaveFileDialog,但却可以弹出保存对话框来 先做导 ...

随机推荐

  1. vuejs--递归组件(树型表格分享)

    前言    前段时间使用vue做了一套后台管理系统,其中使用最多就是递归组件,也因为自己对官方文档的不熟悉使得自己踩了不少坑,今天写出来和大家一起分享. 递归组件    组件在它的模板内可以递归地调用 ...

  2. [terry笔记]11gR2_DataGuard搭建_primary零停机

    11gR2搭建dataguard环境,此篇文章是利用rman搭建dataguard,这样的好处是primary不用停机,当然,前提条件是primary已经开启归档. 相对于可以停机,零停机传送数据文件 ...

  3. 待字闺中之Magic Index 分析

    给定一个数组A,当中有一个位置被称为Magic Index,含义是:如果i是Magic Index.则A[i] = i. 如果A中的元素递增有序.且不反复,请给出方法,找到这个Magic Index. ...

  4. [Angular] Configure an Angular App at Compile Time with the Angular CLI

    Compile time configuration options allow you to provide different kind of settings based on the envi ...

  5. Unity渲染

    我们先大概了解一下对渲染的优先级有影响的几个因素 1.Camera.Depth 不同相机的深度,在渲染顺序的优先度里面是最高的,Depth越大,渲染的图像越靠前 2.Render.SortingOrd ...

  6. Win7操作系统防火墙无法关闭的问题 无法找到防火墙关闭的地方的解决的方法

    计算机右键-管理-服务和应用程序-服务,找到Windows Firewall.双击,启动类型设为自己主动,确定.若这不到这项服务说明被阉割.考虑更换介质安装系统.360等一些安全软件带也有防火墙.全然 ...

  7. js html 事件冒泡

    <!DOCTYPE HTML> <html> <head> <meta http-equiv="Content-Type" content ...

  8. js中如何取精度

    js中如何取精度 一.总结 一句话总结:其实round()函数去经度会有误差,直接用num.toFixed(2)简单方便. toFixed()方法会按照指定的小数返回数值的字符串表示.var num ...

  9. MinGW - 安装和配置 / MinGW - Howto Install And Configure

    MinGW在线安装程序下载地址:http://sourceforge.net/projects/mingw/files/Automated%20MinGW%20Installer/mingw-get- ...

  10. 关于node的聊天室错误

    Deprecationwarning:process,EventEmitter is deprecated use require ('events')instead 关于node的聊天室错误 > ...