NC 5导出Excel
Excel导出功能 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;
}
}
NC 5导出Excel的更多相关文章
- 导出excel时,以form方式提交json数据
今天在写项目时写到一个excel的导出,开始想用ajax请求后台后导出,但发现ajax会有返回值,而且ajax无法直接输出文件,而后台的excel导出方法已经封装好,不方便修改. 就改用了提交的方式f ...
- JQGrid 导出Excel 获取筛选条件
需求描述:页面加载后,进行相关数据搜索,要求点击导出按钮后 下载Excel文件. 思路:希望在点击[导出Excel]按钮时,获取到表格搜索时的filters内容. 在百度.api.jqgrid.js ...
- 杂项收集,包括-发邮件、二维码生成、文件下载、压缩、导出excel
本篇就最近工作解决的问题做个代码收集.包括以下几个方面:发邮件.二维码生成.文件下载.压缩.导出excel.有一种可用的解决方法就好,不求全面,不求原理. 1.发邮件: 命名空间:System.Net ...
- C#使用Aspose.Cells导出Excel简单实现
首先,需要添加引用Aspose.Cells.dll,官网下载地址:http://downloads.aspose.com/cells/net 将DataTable导出Xlsx格式的文件下载(网页输出) ...
- 利用poi导出Excel
import java.lang.reflect.Field;import java.lang.reflect.InvocationTargetException;import java.lang.r ...
- [django]数据导出excel升级强化版(很强大!)
不多说了,原理采用xlwt导出excel文件,所谓的强化版指的是实现在网页上选择一定条件导出对应的数据 之前我的博文出过这类文章,但只是实现导出数据,这次左思右想,再加上网上的搜索,终于找出方法实现条 ...
- NPOI导出Excel
using System;using System.Collections.Generic;using System.Linq;using System.Text;#region NPOIusing ...
- ASP.NET Core 导入导出Excel xlsx 文件
ASP.NET Core 使用EPPlus.Core导入导出Excel xlsx 文件,EPPlus.Core支持Excel 2007/2010 xlsx文件导入导出,可以运行在Windows, Li ...
- asp.net DataTable导出Excel 自定义列名
1.添加引用NPOI.dll 2.cs文件头部添加 using NPOI.HSSF.UserModel; using NPOI.SS.UserModel; using System.IO; 3.代码如 ...
随机推荐
- ubuntu命令行打开网页
在Ubuntu下,当需要打开其他格式文件时,比如pdf.jpg.mp3等格式文件,通常做法是进入到文件所在的目录,双击打开,很影响效率.事实上,可以通过命令xdg-open打开这些格式文件,甚至是网页 ...
- vagrant up报错 Warning: Authentication failure. Retrying...解决方案
参照链接 https://www.cnblogs.com/zqifa/p/vagrant-1.html 可以解决问题.
- 小程序客服下发消息禁止后 session from 还有用吗?
文章概要 1. 小程序下发政策调整分析 2. session from 数据还传到底三方了没? 1. 小程序下发政策调整分析 小程序客服功能下发策略调整 ...
- 20165312 2017-2018-2《Java程序设计》课程总结
20165312 2017-2018-2<Java程序设计>课程总结 每周作业链接汇总 预备作业1:我期望的师生关系 预备作业2:C语言基础调查和java学习展望 预备作业3:Linux安 ...
- 刘志梅201771010115.《面向对象程序设计(java)》第四周学习总结
实验四 类与对象的定义及使用 实验时间 2018-9-20 1.实验目的 (1)预定义类:(不是所有类都具有面向对象特征) 构造器的类名和方法名相同,是一种特殊的方法,用来构造并初始化对象. (2)用 ...
- linux中 bashrc文件的alias添加快捷命令
alias (为了简化命令操作,节省时间) 进入 /home下的用户,假设为 web 执行命令 ls -alh 找到 .bashrc 隐藏文件,如果没有则新建 通过 vi .bashrc 在里 ...
- 代码: jquery 插件开发(自用插件)
http://www.imooc.com/learn/99 阿当大话西游之WEB组件 2016-4-19 jquery插件开发: 2016-3-1 http://www.cnblogs.com/Way ...
- web监控,if 语句
对页面的测试 curl "] #if [`curl -I http://10.0.0.7 &>/dev/null|head -l|grep 200|wc -l` -eq 1] ...
- HTML5 元素文字超出部分显示省略号(支持多行),兼容几乎所有常用浏览器
1,公共样式,在公共的 CSS 文件中加入以下内容 /* 超出部分显示省略号,支持多行 */ .text-ells:before { content: ''; float: left; width: ...
- kudu导入文件(基于impala)
kudu是cloudera开源的运行在hadoop平台上的列式存储系统,拥有Hadoop生态系统应用的常见技术特性,运行在一般的商用硬件上,支持水平扩展,高可用,集成impala后,支持标准sql语句 ...