`
sgm881218
  • 浏览: 58293 次
社区版块
存档分类
最新评论

用Apache POI将JTable表格数据导出生成Excel文件

    博客分类:
  • java
阅读更多

用 Apache POI 将JTable表格数据导出生成Excel文件,jar包附件中!

import java.io.File;
import java.io.FileNotFoundException;
import java.io.FileOutputStream;
import java.io.IOException;

import javax.swing.JFileChooser;
import javax.swing.JTable;
import javax.swing.filechooser.FileFilter;
import javax.swing.table.TableModel;

import org.apache.poi.hssf.usermodel.HSSFCell;
import org.apache.poi.hssf.usermodel.HSSFCellStyle;
import org.apache.poi.hssf.usermodel.HSSFFont;
import org.apache.poi.hssf.usermodel.HSSFRichTextString;
import org.apache.poi.hssf.usermodel.HSSFRow;
import org.apache.poi.hssf.usermodel.HSSFSheet;
import org.apache.poi.hssf.usermodel.HSSFWorkbook;
import org.apache.poi.hssf.util.HSSFColor;

public class ExportExcel {

  JTable table;
  FileOutputStream fos;
  JFileChooser jfc = new JFileChooser();

  public ExportExcel(JTable table) {
    this.table = table;
    jfc.addChoosableFileFilter(new FileFilter() {
      public boolean accept(File file) {
        return (file.getName().indexOf("xls") != -1);
      }

      public String getDescription() {
        return "Excel";
      }
    });

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

  public void export() {
    HSSFWorkbook wb = new HSSFWorkbook();
    HSSFSheet hs = wb.createSheet();
    TableModel tm = table.getModel();
    int row = tm.getRowCount();
    int cloumn = tm.getColumnCount();
    // System.out.println("row " + row + "  column  " + cloumn);
    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 < cloumn; j++) {
        if (i == 0) {
          String value = tm.getColumnName(j);
          // System.out.println("value " + value);
          int len = value.length();
          hs.setColumnWidth((short) j, (short) (len * 400));
          HSSFRichTextString srts = new HSSFRichTextString(value);
          HSSFCell hc = hr.createCell((short) j);
          hc.setEncoding((short) 1);
          hc.setCellStyle(style1);
          hc.setCellValue(srts);
        } 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 srts = new HSSFRichTextString(value);
            HSSFCell hc = hr.createCell((short) j);
            hc.setEncoding((short) 1);
            hc.setCellStyle(style);

            if (value.equals("") || value == null) {
              hc.setCellValue(new HSSFRichTextString(""));
            } else {
              hc.setCellValue(srts);
            }
          }
        }
      }
    }

    try {
      wb.write(fos);
      fos.close();
    } catch (IOException ex) {
      ex.printStackTrace();
    }
  }
}

使用:

public JTable table;........................

传个JTable对象即可。

ExportExcel exportExcel = new ExportExcel(table); 

exportExcel.export(); 
 

  • 大小: 135.9 KB
0
4
分享到:
评论

相关推荐

    将JTable数据导出到Excel

    在Java编程环境中,`JTable`是Swing库中用于展示二维表格数据的组件,而将`JTable`中的数据导出到Excel是一种常见的需求,特别是在数据处理和报告生成的场景下。本教程将深入讲解如何实现这个功能,并提供一个名为`...

    JTable数据导出到Excel.rar

    本资源"JTable数据导出到Excel.rar"提供了一个实现将`JTable`中的数据导出到Microsoft Excel文件的方法。下面我们将详细探讨`JTable`与Excel数据交换的相关知识点。 1. **JTable基本概念** `JTable`是Java Swing中...

    将JTable表的内容输出到Excel.txt

    根据提供的文件信息,我们可以总结出以下关键知识点,主要聚焦于如何使用Java编程语言结合Apache POI库实现将JTable中的内容导出至Excel文件的功能。 ### 关键知识点 #### 1. JTable简介 - **定义**:`JTable`是...

    java导出数据为excel文件

    总的来说,通过Java和Apache POI库,我们可以方便地将数据导出为Excel文件,无论是简单的二维数组还是复杂的数据结构,都能有效地转换和呈现。这为数据交换、报告生成和分析提供了极大的便利。在实际应用中,根据...

    jtable 导出excel 超过65535 新建一个sheet代码

    2. **创建工作簿对象**:使用Apache POI库创建一个`HSSFWorkbook`对象,它是用于表示Excel工作簿的主要类。 3. **循环创建工作表**:遍历每个工作表,使用`createSheet()`方法创建新的工作表,并将数据写入其中。 4....

    自己DIY java导出Excel

    总结来说,Java导出Excel涉及的关键技术点包括对Excel文件格式的理解,使用Java标准API或第三方库(如Apache POI)操作Excel对象,以及数据处理和格式化。通过阅读提供的博客和源代码,开发者可以学习如何在不依赖...

    JAVA 导出EXCEL

    ### JAVA 导出EXCEL知识点解析 #### 一、知识点概览 本篇文章将详细介绍如何在Java中实现从一个`List`列表数据结合...通过本教程的学习,开发者可以轻松地将数据导出到Excel文件中,从而便于数据的进一步分析和处理。

    一个导出Excel非常快的类

    为了快速导出大量数据,Java通常会使用Apache POI库,它允许直接操作Excel文件格式(如`.xlsx`的OOXML和`.xls`的老式BIFF格式)。通过批处理写入操作,避免频繁的磁盘IO操作,可以显著提高性能。例如,使用`...

    仿Excel表格报表

    要将JTable的数据导出为Excel格式,可以使用Apache POI库。创建一个HSSFWorkbook对象,然后使用HSSFSheet创建工作表,并遍历JTable的模型,将数据写入每个单元格。 7. **性能优化** 如果表格数据量很大,需要注意...

    Swing之JTable的详细介绍

    关于Excel表与JTable之间的转换,通常可以通过读取Excel文件(例如使用Apache POI库)并将数据加载到`TableModel`,或者将JTable的数据导出到Excel文件。这样,可以在Java应用程序中展示和编辑Excel数据,同时保持与...

    订单管理系统(Java swing poi)

    这个系统提供了数据的增删改查功能,并且具备将订单数据导出为Excel表格的能力,方便进行数据分析和存储。 Java Swing是Java提供的一种图形用户界面(GUI)工具包,用于构建桌面应用。它允许开发者创建美观且功能...

    income_tax_v140.zip

    使用POI库,程序可以生成新的Excel工作簿,将计算结果填充到各个单元格中,再以文件形式保存到用户的指定位置。 本地TXT数据持久化是另一个实用特性。在Java中,我们可以通过File类和BufferedReader/Writter类实现...

    java实现决策分析模块(源码)

    开发者可能使用 `FileOutputStream` 和 `ObjectOutputStream` 来序列化对象(如统计结果)并写入文件,或者使用 `CSVWriter` 来写入结构化的数据文件。 5. **热点统计图**: 热点图通常用来表示数据的密集程度或...

    基于JAVA数据可视化设计与实现.zip

    3. **Apache POI**: 虽然POI主要用来处理Microsoft Office格式的文件,但它也可以用于读取和写入CSV数据,这在数据可视化时非常有用,可以将数据导出为Excel表格,便于分析和图表制作。 4. **Java Swing**: Swing是...

    JavaSwing实现的学生管理系统源码

    - 使用Java的Apache POI库与Swing结合,可以实现对Excel文件的读写。导入功能允许用户上传Excel文件批量导入学生数据,导出则将系统中的学生数据导出为Excel格式,方便备份和共享。 3. **事件处理**: - Java ...

    很强大-功能齐全带分页的swing项目

    这些功能的实现可能依赖于Java的Runtime类来执行系统命令,或者使用Apache POI库处理Microsoft Office文档,以及使用JEditorPane或WebView来实现简单的网页浏览。 “界面皮肤有几种,随意切换,界面美观”意味着...

    java 成绩管理 有界面

    5. **报表生成**:将成绩数据导出为Excel或PDF格式,方便打印和分享。这需要用到第三方库,如Apache POI处理Excel,iText或Apache FOP处理PDF。 6. **权限控制**:根据用户角色(如教师、管理员)设定不同操作权限...

    java mis 管理系统练习

    5. 报表生成:利用Java的iText或Apache POI库,将学生数据导出为PDF或Excel格式。 在开发过程中,你还会接触到Java的事件处理机制,例如事件监听器接口,如ActionListener和ItemListener,它们负责响应用户的操作,...

    java 图书管理系统

    - **报表生成**:可以使用Apache POI库生成Excel报表,导出图书清单。 - **PDF输出**:利用iText库,将图书信息转换为PDF格式,便于打印或存储。 7. **二维码功能** - **二维码生成**:引入ZXing库,生成包含...

    学生考试成绩分析程序

    【标签】"JAVA"表明了该程序的开发语言,Java具有丰富的类库和框架支持,能够轻松实现各种功能,如Swing用于构建GUI,JUnit用于单元测试,以及可能使用到的Apache POI库来处理Excel文件,便于导入和导出成绩数据。...

Global site tag (gtag.js) - Google Analytics