• JTable表格内容导出execl表


    /**
    * 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);
    }
    }
    }
    }

  • 相关阅读:
    Nginx 配置对流量、连接和请求的限制
    linux iptables规则介绍
    Javascript 语言精粹 代码片段合集
    Wowza® Media Systems 使用配置手册。
    如何去除My97 DatePicker控件上右键弹出官网的链接
    [转载]jQuery诞生记-原理与机制
    java swing JButton文字显示异常
    c# 内存拷贝 解决json序列化丢失私有数据(二进制序列化反序列化)
    c# Marshal 将字节数组转为结构 封装协议
    c# 串口通信及模拟串口进行调试
  • 原文地址:https://www.cnblogs.com/gwq369/p/5359489.html
Copyright © 2020-2023  润新知