RCP项目_poi下载Excel
来源:互联网 发布:mac 图标大小不一样 编辑:程序博客网 时间:2024/04/30 01:54
poi所用的包:poi-3.8-20120326.jarpoi-examples-3.8-20120326.jarpoi-excelant-3.8-20120326.jarpoi-ooxml-3.8-20120326.jarpoi-ooxml-schemas-3.8-20120326.jarpoi-scratchpad-3.8-20120326.jarxmlbeans-2.3.0.jarxwork-core-2.2.1.1.jar注意:要在plugin.xml文件的Runtime中的ClassPath加入包,没有加载会访问不到
/** * 存储sheet的数据 * @author suhuafu * */public class PaperDataVO { public PaperDataVO() { } public PaperDataVO(String workbookName, List<String[]> list) { this.workbookName = workbookName; this.list = list; } private String workbookName="default";//工作表名称 private List<String[]> list = new ArrayList<String[]>();//动态值队 public String getWorkbookName() { return workbookName; }
@Overridepublic void widgetSelected(SelectionEvent e) {int count = table.getColumnCount(); TableItem[] items = table.getItems(); final List<String[]> list = new ArrayList<String[]>(); String[] str = null; for (int i = 0; i < items.length; i++) { str = new String[count]; for (int j = 0; j < count; j++) {str[j] = items[i].getText(j);} list.add(str);} //创建文件夹对话框DirectoryDialog direcory = new DirectoryDialog(getSite().getShell());direcory.open();final String path = direcory.getFilterPath();//打开处理窗口ProgressMonitorDialog pmd = new ProgressMonitorDialog(getSite().getShell()); //创建进度条对象IRunnableWithProgress rwp = new IRunnableWithProgress() { @Override public void run(IProgressMonitor monitor){ //totalWork为IProgressMonitor.UNKNOWN时表示不知道任务的总量 //将在进度条上显示一个来回移动的进度条 monitor.beginTask("正在下载..." , IProgressMonitor.UNKNOWN); //TODO 相应的业务逻辑 monitor.subTask("读取数据..."); if(path != ""){List<PaperDataVO> pdvs = new ArrayList<PaperDataVO>(); PaperDataVO paper = new PaperDataVO(); paper.setWorkbookName("报销单"); paper.setList(list); pdvs.add(paper); OutputStream tempOut = null;InputStream in = null;try {//获取插件,获取文件的相对路径in = Platform.getBundle("com.welldell.rcp.render.db") .getEntry("fileTemplate/renderMain.xlsx").openStream();//生成文件路径String src = path+"\\报销单"+ DateFormatUtil.formatDateToString(new Date(System.currentTimeMillis()), DateFormatUtil.V_LONG_YMD) +".xlsx";tempOut = new FileOutputStream(src);WriteExcelUtil.buildExcel(in, tempOut, pdvs);} catch (FileNotFoundException e1) {// TODO Auto-generated catch blocke1.printStackTrace();} catch (IOException ioe) {// TODO Auto-generated catch blockioe.printStackTrace();} } monitor.subTask("处理完成!"); monitor.done(); }}; try {pmd.run(true, false, rwp);} catch (Exception e1) {// TODO Auto-generated catch blocke1.printStackTrace();} }});
public static void buildExcel(InputStream ins, OutputStream os, List<PaperDataVO> pdvs) {if (pdvs == null || pdvs.size() == 0) {return;}try {Sheet sheet = null;Row row = null;//行Cell cell = null;//单元格Workbook wb = new XSSFWorkbook(ins);int sheetNum = wb.getActiveSheetIndex();//模板sheet的数量for (int i = 0; i < pdvs.size(); i++) {PaperDataVO pdv = pdvs.get(i);if(sheetNum < i){sheet = wb.getSheetAt(wb.getActiveSheetIndex());//获取激活中的sheet}else{sheet = wb.getSheetAt(i);if(sheet == null)sheet = wb.createSheet(pdv.getWorkbookName()+i);}List<String[]> list = pdv.getList();int rowNum = list.size()+1;int cellNum = sheet.getRow(0).getPhysicalNumberOfCells();for (int j = 1; j < rowNum ; j++) {//循环行row = sheet.createRow(j);for (int k = 0; k < cellNum; k++) {//循环行的列cell = row.createCell(k);cell.setCellValue(list.get(j-1)[k]);}}}wb.write(os);os.flush();os.close();} catch (Exception ex) {ex.printStackTrace();}}
- RCP项目_poi下载Excel
- Java中读取Excel功能实现_POI
- day56_电力项目_POI导出JXL导入
- Java中Excel导入功能实现、excel导入公共方法_POI -
- RCP-创建项目
- Eclipse4 RCP项目问题解答
- RCP项目的结构
- 【项目学习】——下载Excel模板
- 2015.11.21_poi
- Eclipse 3.5 RCP项目发布
- Eclipse rcp 添加项目nature
- RCP项目导出exe 步骤
- Plug-in 创建RCP项目
- RCP中整合Office (excel 、word、outlook)
- eclipse rcp 开发实例 (源码下载)
- JavaWeb项目导出Excel文件并弹出下载框
- excel 下载
- Excel下载
- hash函数实现
- form表单字段元素对象(三)— —按回车键,焦点移到下一个文本输入框
- uialertview 添加进度条
- VI编辑器常用命令及快捷键
- 利用 spring+freemarker 发送邮件
- RCP项目_poi下载Excel
- c#使用ExifLib 提取图像的 EXIF信息
- android 横竖屏问题解析
- 百度地图自定义弹窗(PopupOverlay)Android篇
- SPRING.NET 1.3.2 学习9--设置泛型集合的值
- Uboot
- 获取随机数函数sand()的总结
- termios 系列函数分析
- 从AlertView例解设置view背景的几种方法