`
wuhaidong
  • 浏览: 357804 次
  • 性别: Icon_minigender_1
  • 来自: 青岛
社区版块
存档分类
最新评论

Excel导出功能

    博客分类:
  • NC
 
阅读更多

NC中功能事件代码:

@Override
	protected void onBoRefresh() throws Exception {
		UIFileChooser fc = new UIFileChooser();//文件选择器
		fc.setDialogType(UIFileChooser.SAVE_DIALOG);// 指示 UIFileChooser 支持 "Save" 文件操作的类型值。
//		fc.setFileSelectionMode(UIFileChooser.FILES_AND_DIRECTORIES);//指示显示文件和目录。
		fc.setFileSelectionMode(UIFileChooser.FILES_ONLY);//指示仅显示文件。
		fc.setFileFilter(new ExcelFileFilter());// 设置当前文件过滤器。
		fc.setMultiSelectionEnabled(false);//设置文件选择器,以允许选择多个文件。
		int i = fc.showSaveDialog(this.getBillUI()); //弹出一个 "Save File" 文件选择器对话框。
//		fc.showOpenDialog(this.getBillUI()); //弹出一个 "Open File" 文件选择器对话框。
		if(i == UIFileChooser.APPROVE_OPTION){
			String filePatch = fc.getSelectedFile().getPath();
			BillCardPanel cardPanel = this.getBillCardPanelWrapper().getBillCardPanel();
			Boolean bool = ExportExcel.writeJxlByTableModel(filePatch, cardPanel);
			if(bool){
				MessageDialog.showHintDlg(this.getBillUI(), "提示", "导出信息成功!");
				return;
			}
		}else{
			System.out.println("撤销成功");
		}
	}

 

 文件过滤类:

package nc.ui.ldzl.order;

import java.io.File;

import javax.swing.filechooser.FileFilter;

/**
 * @author sj
 *
 * TODO 要更改此生成的类型注释的模板,请转至
 * 窗口 - 首选项 - Java - 代码样式 - 代码模板
 */
public class ExcelFileFilter extends FileFilter {
	private String filters = "xls";
//	private String filters2 = "xlsx";
	private String description = "Microsoft Excel (*.xls)";
	/**
	 * MyFileFilter 构造子注解。
	 */
	public ExcelFileFilter() {
		super();
	}
	/**
	 * Whether the given file is accepted by this filter.
	 */
	public boolean accept(java.io.File f)//此过滤器是否接受给定的文件。
	{
		if (f != null)
		{
			if (f.isDirectory())//测试此抽象路径名表示的文件是否是一个目录。
			{
				return true;
			}
			String extension = getExtension(f);
			if(extension != null && extension.trim().equals(this.filters))
			{
				return true;
			}
		}
		return false;
	}
	/**
	 * The description of this filter. For example: "JPG and GIF Images"
	 * @see FileView#getName
	 */
	public String getDescription()//此过滤器的描述。
	{
		return description;
	}
	
	public static String getExtension(File f) {
		if(f != null) {
			String filename = f.getName();
			int i = filename.lastIndexOf('.');
			if(i>0 && i<filename.length()-1) {
				return filename.substring(i+1).toLowerCase();
			};
		}
		return null;
	}
}

 

 

导出Excel代码类:

package nc.ui.pub.util;

import java.io.*;
import nc.ui.pub.bill.BillCardPanel;
import nc.ui.pub.bill.BillScrollPane.BillTable;
import jxl.*;
import jxl.write.*;
import jxl.write.biff.RowsExceededException;
/**
 * 用来导出Excel的工具
 */
public class ExportExcel {

	public static boolean writeJxlByTableModel(String filePatch,BillCardPanel cardPanel) {
		BillTable table = (BillTable) cardPanel.getBillTable();
		WritableWorkbook writableWorkbook = null;
		OutputStream os = null;
		if (table == null || table.getRowCount() <= 0) {
			return false;
		}
		if (!filePatch.endsWith(".xls")) {
			System.out.println("=======不是正确的xls格式,请核查==========");
			return false;
		}
		try {
			os = new FileOutputStream(filePatch);
			// 创建可写簿
			writableWorkbook = Workbook.createWorkbook(os);
			// 创建工作表
			WritableSheet ws = writableWorkbook.createSheet("楼号档案页签", 0);
			// 创建一个内容 第一个整数为 列,第二个整数为 行
			Label label = null;
			int rows = table.getRowCount();
			int cols = table.getColumnCount() - 1;
			String[] headitem = new String[] { "vbillno", "pactname","reserve4" };//表头字段
			for (int row = 0; row < rows + 1; row++) {
				for (int col = 0; col < headitem.length; col++) {
					if (row == 0) {
						String headerName = cardPanel.getHeadItem(headitem[col]).getName();
						label = new Label(col, row, headerName);
						ws.addCell(label);
						ws.setColumnView(col,headerName == null ? 10: (headerName.length() > 2 ? headerName.length() * 3 : headerName.length() * 6));
					} else {
						label = new Label(col, row, cardPanel.getHeadItem(headitem[col]).getValue());
						ws.addCell(label);
					}
				}
				for (int col = headitem.length; col < cols + headitem.length; col++) {
					if (row == 0) {
						String headerName = table.getTableHeader().getColumnModel().getColumn(col - headitem.length).getHeaderValue() == null ? "": 
							table.getTableHeader().getColumnModel().getColumn(col - headitem.length).getHeaderValue().toString();
						label = new Label(col, row, headerName);
						ws.addCell(label);
						ws.setColumnView(col,headerName == null ? 10: (headerName.length() > 2 ? headerName.length() * 3 : headerName.length() * 6));
					} else {
						label = new Label(col, row, table.getValueAt(row - 1,col - headitem.length) == null ? "" : table.getValueAt(row - 1, col - headitem.length).toString());
						ws.addCell(label);
					}
				}
			}
			writableWorkbook.write();
		} catch (IOException e) {
			e.printStackTrace();
		} catch (RowsExceededException e) {
			e.printStackTrace();
		} catch (WriteException e) {
			e.printStackTrace();
		} finally {
			try {
				if(os != null){
					os.close();
				}
				if(writableWorkbook != null){
					writableWorkbook.close();
				}
			} catch (IOException e) {
				// TODO Auto-generated catch block
				e.printStackTrace();
			} catch (WriteException e) {
				// TODO Auto-generated catch block
				e.printStackTrace();
			}
		}
		return true;
	}
}
 

 

分享到:
评论

相关推荐

    java简单的Excel导出功能

    在Java编程环境中,实现Excel导出功能是一项常见的需求,尤其在数据处理和报表生成时。以下将详细讲解如何使用Java实现简单的Excel导出功能。 首先,我们需要了解的是Java中用于处理Excel文件的主要库:Apache POI...

    Java语言中一个excel导出功能

    以下是一个使用JExcelAPI库实现简单Excel导出功能的Java示例。JExcelAPI是一个开源库,允许Java应用程序读取、写入和修改Microsoft Excel文件。 首先,我们需要引入必要的导入语句,如`jxl.*`,这表示我们使用了...

    Freemarker实现excel导出功能

    本篇文章将详细探讨如何使用Freemarker来实现Excel导出功能,并通过实际例子加深理解。 一、Freemarker基础 1. 模板语言:Freemarker是一种基于模板的语言,它允许开发者通过简单的语法(如 `${}` 和 `#if`)来...

    Java的Excel导出功能

    在Java编程环境中,实现Excel导出功能是一项常见的需求,尤其在数据处理和报表生成场景下。Excel导出功能使得程序能够将数据结构化地存储到Excel文件中,方便用户查看、编辑和分析。这里我们将深入探讨Java实现Excel...

    thinkphp excel导出功能

    在ThinkPHP框架下实现Excel导出功能,我们可以借助第三方库,如PHPExcel或者EasyExcel。这里我们将重点讨论如何在ThinkPHP,特别是Onethink(基于ThinkPHP的扩展框架)中实现这个功能。 首先,为了在ThinkPHP项目中...

    Kendo UI框架grid的Excel导出功能改进js代码

    Kendo UI框架提供了强大的Excel导出功能,通过Grid的saveAsExcel能方便地导出Grid中的数据,而且格式美观大方,使用起来也非常方便。但是在实际使用中不是很理想,主要有以下两个问题: 1. 导出的列数据是原始值 ...

    excel导出功能

    在IT领域,Excel导出功能是一项常见的需求,特别是在数据分析、报表生成和数据交换等场景中。Excel因其强大的表格处理能力和灵活的数据格式设置,被广泛应用于企业和个人用户中。本篇文章将详细探讨“excel导出功能...

    java实现excel导出功能

    java实现excel导出功能,通过查询数据库指定数据,将数据以excel方式导出的功能 excel导出的功能

    excel导出功能(winform形式)

    "Excel导出功能(WinForm形式)"这一主题聚焦于如何在WinForm应用中实现这个功能。下面将详细阐述实现这个功能的关键步骤和涉及的技术。 首先,你需要在项目中引用Microsoft.Office.Interop.Excel库,它是用于与...

    Excel导出功能,是一个开源组件,非常实用

    Excel导出功能在IT行业中广泛应用于数据管理和报告生成,尤其对于需要处理大量表格数据的场景。开源组件在当今软件开发中扮演着重要角色,它们降低了开发成本,提高了效率,同时也促进了技术共享。在这个主题中,...

    导出Excel功能,导出Excel功能,导出Excel功能

    在IT领域,导出Excel功能是一项非常常见的需求,特别是在数据分析、报表生成以及数据共享等场景中。Excel作为一款强大的电子表格软件,因其易用性、灵活性和强大的计算能力,成为了企业和个人处理数据的首选工具。...

    【ASP.NET编程知识】Asp.Net Core实现Excel导出功能的实现方法.docx

    "ASP.NET Core 实现 Excel 导出功能的实现方法" 在 ASP.NET Core 中实现 Excel 导出功能是一个常见的需求, ClosedXML 是一个流行的 NuGet 包,用于将数据导出成 Excel 文件。下面是使用 ClosedXML 实现 Excel 导出...

    ThinkPHP中 Excel导出功能

    ThinkPHP中 Excel导出功能 下载必会 在后台管理中会经常需要将数据生成excel表格的; php生成excel有两种方案; 一种是通过phpexcel生成xls格式的表格文件; 另一种则直接通过逗号换行生成csv格式的表格文件; 这里...

    excel导出类,实现excel的导出功能

    excel导出类,可以直接使用类来实现excel导出,不回出现excel扩展格式错误问题!

    testlink1.9.13-包含excel导出功能.rar

    考虑到这一点,对TestLink1.9.13进行的二次开发重点在于添加了Excel导出功能,使得测试数据的导出变得更加直观和易用。 Excel是一种广泛使用的电子表格程序,其强大的数据处理和可视化能力使得它成为处理和分析数据...

    jxls实现的excel导出功能,支持03以上版本

    标题中的“jxls实现的excel导出功能,支持03以上版本”指的是使用jxls库来生成Excel文件的程序设计技术。jxls是一个强大的Java库,它允许开发者使用Apache POI库来处理Excel模板,从而简化Excel数据导出的过程。这个...

    在FLEX中使用MecGrid的excel导出功能

    在FLEX中使用MecGrid的Excel导出功能是一个常见的需求,特别是在开发数据密集型应用程序时,用户往往需要将展示的数据导出为Excel格式以便于分析或存储。本篇文章将详细探讨如何在Flex项目中集成并利用MecGrid库来...

    excel导出支持前台和后台导出

    在IT行业中,Excel导出是一项常见的功能,尤其在企业级应用中,用于数据报表的生成与分享。"Excel导出支持前台和后台导出"这一技术主题涉及到...结合Struts2框架,我们可以轻松地在后台实现高效、可控的Excel导出功能。

    jsp程序excel导出功能

    本人试过了可以用,做jsp程序导出excel功能的可以参考下,下载后按照模版进行修改

    Excel导出数据(根据Excel模板定义)

    "Excel导出数据(根据Excel模板定义)"这个主题涉及到的核心技术是如何根据预设的Excel模板生成和导出数据,通常用于批量生成报表或者进行复杂的数据呈现。下面将详细解释这一过程及其相关知识点。 1. **Excel模板...

Global site tag (gtag.js) - Google Analytics