/**
* Java中将JTable中的数据导出到Excel中
* @author windpower3
*
*此类导入了5个包:poi-3.8-20120326.jar
* poi-examples-3.8-20120326.jar
poi-ooxml-3.8-20120326.jar
poi-ooxml-schemas-3.8-20120326.jar
poi-scratchpad-3.8-20120326.jar
*/
public class ExportExcel {
JTable table;
FileOutputStream fos;
File file;
JFileChooser jfc=new JFileChooser();

public ExportExcel(JTable table){
if(table.getRowCount()==0){
JOptionPane.showMessageDialog(table,"表格内容不能为空");
return;

}
this.table=table;
jfc.addChoosableFileFilter(new FileFilter() {

@Override
public String getDescription() {

return "Excel";
}

@Override
public boolean accept(File f) {
return f.getName().indexOf("xls")!=-1;
}
});

jfc.showSaveDialog(null);
file=jfc.getSelectedFile();

try{
this.fos=new FileOutputStream(file+".xls");
}catch(FileNotFoundException ex){
ex.printStackTrace();
}
}

public void export(){
//判断有没有选择文件
if(file==null){
JOptionPane.showMessageDialog(null, "没有选择要导出的文件路径");
return;
}
//判断文件有没有被别的程序占用
if (!file.renameTo(file)) {
JOptionPane.showMessageDialog(null,
"该表单号文件正在被别的程序占用,请先关闭该文件解除占用");
return;
}
HSSFWorkbook wb=new HSSFWorkbook();
HSSFSheet hs=wb.createSheet();
TableModel tm=table.getModel();
int row=table.getRowCount();
int column=table.getColumnCount();
// System.out.println("行:"+row+" 列:"+column);
HSSFCellStyle style=wb.createCellStyle();
style.setBorderBottom(HSSFCellStyle.BORDER_THIN);
style.setBorderLeft(HSSFCellStyle.BORDER_THIN);
style.setBorderRight(HSSFCellStyle.BORDER_THIN);
style.setBorderTop(HSSFCellStyle.BORDER_THIN);
style.setFillForegroundColor(HSSFColor.LIGHT_GREEN.index);
style.setFillPattern(HSSFCellStyle.SOLID_FOREGROUND);
HSSFFont font=wb.createFont();
font.setFontHeightInPoints((short)11);
style.setFont(font);

HSSFCellStyle style1=wb.createCellStyle();
style1.setBorderBottom(HSSFCellStyle.BORDER_THIN);
style1.setBorderLeft(HSSFCellStyle.BORDER_THIN);
style1.setBorderRight(HSSFCellStyle.BORDER_THIN);
style1.setBorderTop(HSSFCellStyle.BORDER_THIN);
style1.setFillForegroundColor(HSSFColor.ORANGE.index);
style1.setFillPattern(HSSFCellStyle.SOLID_FOREGROUND);

HSSFFont font1 = wb.createFont();
font1.setFontHeightInPoints((short) 15);
font1.setBoldweight((short) 700);
style1.setFont(font);

for(int i=0;i<row+1;i++){
HSSFRow hr=hs.createRow(i);
for (int j = 0; j < column; j++) {
if(i==0){
String value=tm.getColumnName(j);
// System.out.println("value " + value);
int len=value.length();
hs.setColumnWidth(j, len*800);
HSSFRichTextString strs=new HSSFRichTextString(value);
HSSFCell hc=hr.createCell(j);
// hc.setEncoding((short) 1);
hc.setCellStyle(style1);
hc.setCellValue(strs);
}else{
// System.out.println("vlue " + tm.getValueAt(i - 1, j));
if(tm.getValueAt(i-1, j)!=null){
String value=tm.getValueAt(i-1, j).toString();
HSSFRichTextString strs=new HSSFRichTextString(value);
HSSFCell hc=hr.createCell(j);
hc.setCellStyle(style);
if(value.equals("") || value==null){
hc.setCellValue(new HSSFRichTextString(""));
}else{
hc.setCellValue(strs);
}
}
}
}
}
try{
wb.write(fos);
JOptionPane.showMessageDialog(null, "导出成功");

}catch(IOException e){
JOptionPane.showMessageDialog(null, "导出失败");
//阻止下面的代码执行
throw new RuntimeException(e);

}finally{
try {
if(fos!=null){
fos.close();
System.out.println("资源关闭成功。。。");
}
} catch (IOException e) {
System.out.println("资源关闭失败。。。");
throw new RuntimeException(e);
}
}
}
}

转载于:https://www.cnblogs.com/gwq369/p/5359489.html

JTable表格内容导出execl表相关推荐

  1. 将html表格导出到excel表格,table2excel-将HTML表格内容导出到Excel中_html/css_WEB-ITnose...

    简要教程 jquery-table2excel是一款可以将HTML表格的内容导出到微软Excel电子表格中的jQuery插件.该插件可以根据你的需要导出表格中的内容,不需要的行可以不导出.它文件体积小 ...

  2. vue+elementui系统利用Export2Excel.js将表格内容导出到excel,并设置表头文字水平垂直居中

    写在前面:这是纯前端导出,导出的表格是二级表头,内容是四级单元格(单元格内有四小格),这几个点学会之后应该能适应大部分导出excel的需求了.本次功能记录真实有效.对于之前没接触过导出excel需求的 ...

  3. java解析页面table表格内容导出为excel

    最近,因为项目中需要做到各个终端兼容,所以在报表预览时必须通用,所以采用后台生成html表格代码,前台通过jquery的load方法载入设置到指定位置. 生成excel时,通过解析html表格操作,就 ...

  4. Excel表格内容导出到页面

    引入org.apache.poi.ss.usermodel public void addExcelBooks() throws Exception { HttpServletRequest requ ...

  5. bootstrap表格内容居中_bootstrap表单怎么居中

    Bootstrap通过一些简单的 HTML 标签和扩展的类即可创建出不同样式的表单. Bootstrap提供了多种表单布局,不过我们最常用的就是表单居中,也叫水平表单. 水平表单与其他表单不仅标记的数 ...

  6. XLSX导出页面表格内容 日期数据显示不全

    XLSX导出页面表格内容 日期数据显示不全 最近在做项目的一个表格内容导出功能,因为不想在后端写导出,所以使用XLSX.utils.table_to_book这个方法导出页面表格内容,但是导出的内容有 ...

  7. php excel导出sheet表,phpexcel来做表格导出(多个工作sheet)

    1.先得去下载phpexcel文档,加压下来 /** * 简单实用Execl */ set_include_path('.'.get_include_path().PATH_SEPARATOR.dir ...

  8. oracle表中一个字段内容导出到磁盘上

    有没有遇到过这样的问题, 系统设计的时候,会把一些内容比较大的文本内容存入到表中(oracle longe类型最大可以存放2G的文本) 刚开始也许不会有什么问题,但是时间长了,数据量大了,经常频繁的i ...

  9. VB.net小技巧——使用DataGridView显示EXECL表格内容

    VB.net小技巧--使用DataGridView显示EXECL表格内容 直接上代码 Private Sub Button24_Click(ByVal sender As System.Object, ...

  10. php页面表格导出excel表格数据类型,php页面表格导出excel表格数据类型-php导出excel是不是导出整个表的?可不可以导出指......

    php 怎么把数据导出到excel表格 昨天项目里有个新需求,客户希望把一些数据能导出成为Excel表格,刚开始用PHP原生输入Excel表格,发现效果不是很理想,于是找到一个比较著名的库:PHPEx ...

最新文章

  1. Spark MLlib实现的中文文本分类–Naive Bayes
  2. list字母排序 java_通过Java排序List集合的元素的几种方法
  3. sort与sorted
  4. Redis基础知识之————如何处理客户端连接
  5. ORACLE10g R2及PATH官方下载地址
  6. json string 格式_python中json函数的用法
  7. java volatitl_Java中的关键字volatitle
  8. 安装好grunt,cmd 提示grunt不是内部或外部命令 怎么办?
  9. putty 登陆Linux 标签栏显示当前ip
  10. 定制软件项目经理应该善于说“NO”
  11. 堡垒机应用发布服务器是干嘛的_支持Web UI数据库审计和敏感数据国密算法加密,JumpServer堡垒机v2.5.0发布丨Release Notes...
  12. bzoj 1694 1742: [Usaco2005 nov]Grazing on the Run 边跑边吃草(DP)
  13. 微信小程序获取手机号 前台+php后台
  14. 【水果识别】基于matlab GUI苹果质量检测及分级系统【含Matlab源码 896期】
  15. 联想拯救者R720黑苹果EFI分享
  16. 木工雕刻机操作教学视频
  17. 第22节 NAT(网络地址转换)—实现公网IP和私网IP之间的转换
  18. 般若波罗蜜多心经-梵文(收藏)
  19. 小米5s+刷+android+8.0,【小米5S标准版 解账户锁线刷包】MIUI V8.0.10.0 刷机 工具+驱动+教程!紫火提供版...
  20. Lenovo 拯救者15ISK升级BIOS

热门文章

  1. 文件与i o流java实_JavaFile I/O流
  2. 2.15.PHP7.1 狐教程-【PHP 抽象类、抽象方法】
  3. Zend Studio9.02 字体显示,WIN7系统
  4. LayaAir textInput 单行输入多行输入
  5. Html meta 标签定义页面元信息 详解
  6. JavaScript String 对象、Math 对象使用详解
  7. 阶段3 3.SpringMVC·_05.文件上传_3 文件上传之Springmvc方式上传原理分析
  8. 阶段3 3.SpringMVC·_02.参数绑定及自定义类型转换_1 请求参数绑定入门
  9. pyhton基础中的要点一
  10. Subarray Sum K