package com.xjj.supervise.instance.util;
import jxl.write.*;
import jxl.write.biff.RowsExceededException;
import jxl.Workbook;
import jxl.read.biff.BiffException;
import javax.servlet.http.HttpServletRequest;
import javax.naming.NamingException;
import java.io.File;
import java.io.IOException;
import java.io.UnsupportedEncodingException;
import java.util.List;
import java.util.ArrayList;
import java.sql.Timestamp;
import java.sql.SQLException;
import com.xjj.sf.util.SfxzspClient;
import com.xjj.sf.util.TreeItem;
import com.xjj.sf.util.SfUtil;
import com.xjj.sf.item.service.SpIntanceItemService;
import com.xjj.sf.item.dao.ServiceItemAndInstDataDao;
import com.xjj.sf.item.util.IntanceItemUtil;
import com.xjj.sf.ouser.dao.SpUserDao;
import com.xjj.sf.ouser.model.SpUserModel;
import com.xjj.sf.xbase.platform.spring.SpringContext;
import com.xjj.util.SfConstants;
import com.xjj.supervise.instance.model.IntanceModel;
import com.xjj.supervise.instance.service.InstanceProcessService;
import com.xjj.oa.util.OaUtil;
/**
* Created by IntelliJ IDEA.
* User: Administrator_xusg
* Date: 2008-7-29
* Time: 14:26:52
* DESP:
* To change this template use File | Settings | File Templates.
*/
public class InstanceEducelist {
public static boolean educef = false;
private static InstanceEducelist instance;
static{
instance = new InstanceEducelist();
}
public static InstanceEducelist getInstance(){
if(instance == null) instance = new InstanceEducelist();
return instance;
}
public synchronized String createJxl(HttpServletRequest request){
educef = false;
SpIntanceItemService iService = (SpIntanceItemService) SpringContext.getBean("spIntanceItemService");
InstanceProcessService instanceProcessService = (InstanceProcessService)SpringContext.getBean("instanceProcessService");
ServiceItemAndInstDataDao itemInstDaoImpl = (ServiceItemAndInstDataDao)SpringContext.getBean("itemInstDaoImpl");
SpUserDao spUserImpl = (SpUserDao)SpringContext.getBean("spUserImpl");
String resourcePath = request.getSession().getServletContext().getRealPath(File.separator+"jxlt"+File.separator+"intancelistt.xlt");
String targetPath = resourcePath.substring(0,resourcePath.lastIndexOf(File.separator));
targetPath += (File.separator+"xls"+File.separator+System.currentTimeMillis()+".xls");
File sourceF = new File(resourcePath);
File targetF = new File(targetPath);
if(targetF.exists()) targetF.delete();
//条件开始
String orgId = "0";
SfxzspClient client = new SfxzspClient();
List orglist = client.getAllDepartMentInfo(SfConstants.getString("GROUPID")); //所有单位
for(int i=0;i<orglist.size();i++){
TreeItem orgIds = (TreeItem)orglist.get(i);
orgId = orgIds.getId();
break;
}
String toOrgId = "";
if(request.getParameter("toOrgId")!=null){
toOrgId = request.getParameter("toOrgId");
orgId = toOrgId;
}else toOrgId = orgId;
List orgItemlist = new ArrayList();
try {
orgItemlist = itemInstDaoImpl.getItemlistByOrgId(new Integer(orgId),null,null); //取出第一个单位的事项
} catch (Exception e) {
e.printStackTrace();
}
IntanceModel imodel = new IntanceModel();
if(!orgId.equals("0")&&orgId.length()>0) imodel.setOrgId(Integer.parseInt(orgId));
String search_name = request.getParameter("search_name");
String search_instNumber = request.getParameter("search_instNumber");
String itemId = request.getParameter("itemId");
String state = request.getParameter("state") ;
String search_userName = request.getParameter("search_userName");
String search_declarer = request.getParameter("search_declarer");
String declareTime = request.getParameter("declareTime");
String endtime = request.getParameter("endtime");
String search_all = request.getParameter("search_all");
if(search_name!=null&&search_name.length()>0){
search_name = search_name.trim();
try {
search_name = new String(search_name.getBytes(),"GBK");
} catch (UnsupportedEncodingException e) {
e.printStackTrace();
}
imodel.setName(search_name);
}
if(search_instNumber!=null&&search_instNumber.length()>0) imodel.setInstNumber(search_instNumber); //事项编号
if(itemId!=null&&itemId.length()>0&&!itemId.equals("0")) imodel.setServiceId(itemId); //事项ID
if(state!=null&&state.length()>0&&!state.equals("0")) imodel.setState(Integer.parseInt(state)); //状态
else imodel.setBy1("1,2,4,6,8,9,11,20,21");
if(search_userName!=null&&search_userName.length()>0){
search_userName = search_userName.trim();
try {
search_userName = new String(search_userName.getBytes(),"GBK");
} catch (UnsupportedEncodingException e) {
e.printStackTrace();
}
imodel.setUserName(search_userName);
}
if(search_declarer!=null&&search_declarer.length()>0) imodel.setDeclarer(search_declarer);
if(declareTime!=null&&declareTime.length()>0){
String st = declareTime+" 00:00";
imodel.setDeclareTime(SfUtil.stringToTimestamp(st,null));
}
if(endtime!=null&&endtime.length()>0){
String et = endtime+" 23:58";
imodel.setDeclareEndTime(SfUtil.stringToTimestamp(et,null));
}
if(search_all!=null&&search_all.length()>0){
search_all = search_all.trim();
try {
search_all = new String(search_all.getBytes(),"GBK");
} catch (UnsupportedEncodingException e) {
e.printStackTrace();
}
imodel.setBy6(search_all);
}
//条件完成
Workbook handExcel = null;
try {
handExcel = Workbook.getWorkbook(sourceF);
WritableWorkbook educeExcel = Workbook.createWorkbook(targetF,handExcel);
WritableSheet targetExcelSheet = educeExcel.getSheet(0);
//标题头
String title = "省人民政府政务服务中心办件情况表";
jxl.write.WritableFont wf = new jxl.write.WritableFont(WritableFont.TIMES,20, WritableFont.BOLD,false);
WritableCellFormat MainCellFormat = new WritableCellFormat(wf);
MainCellFormat.setBorder(jxl.format.Border.ALL,jxl.format.BorderLineStyle.THIN); //设置 border 格式
MainCellFormat.setAlignment(jxl.format.Alignment.CENTRE);
MainCellFormat.setVerticalAlignment(jxl.format.VerticalAlignment.CENTRE);
MainCellFormat.setWrap(true);
Label label = new Label(0,0,title,MainCellFormat);
targetExcelSheet.addCell(label);
setTimeLabelFormat(1,imodel,targetExcelSheet,label); //设置时间
imodel.setWillDate(SfUtil.getDateFormat(new Timestamp(System.currentTimeMillis()),2));
List datalist = iService.getDataListByModel(imodel,-1,-1,null);
//写入过程数据
int position = 3;
for(int i=0;i<datalist.size();i++){
IntanceModel model = (IntanceModel)datalist.get(i);
model.setProcessModel(instanceProcessService.getInstanceProcesslistByIntanceIdState(model.getId(),imodel.getState()));
model.setInstNumber(model.getInstNumber()==null||model.getInstNumber().equals("null")?"":model.getInstNumber());
//model.setStateName(IntanceItemUtil.getIntance().getStateImageByTime(model,1));
model.setBy1(IntanceItemUtil.getIntance().showStateName(model.getState()));
//model.setBy2(IntanceItemUtil.getIntance().getImageText(model.getStateName()));
SpUserModel sumodel = spUserImpl.getSpUserModelByCardId(model.getDeclarer());//机构代码取用户类型
model.setBy7(sumodel==null?"":(sumodel.getCardType().equals("1")?"身份证":"机构代码"));
model.setBy8(sumodel==null?"":sumodel.getCardId()==null?"":sumodel.getCardId());
model.setBy9((i+1)+"");
setDataLabelFormat(position,model,targetExcelSheet,label);
model.setUserIdName(OaUtil.getUserNameById(model.getUserId()));
position++;
}
educeExcel.write(); //写入Excel对象
educeExcel.close();
handExcel.close();
} catch (IOException e) {
e.printStackTrace();
} catch (BiffException e) {
e.printStackTrace();
} catch (RowsExceededException e) {
e.printStackTrace();
} catch (WriteException e) {
e.printStackTrace();
} catch (SQLException e) {
e.printStackTrace();
} catch (NamingException e) {
e.printStackTrace();
}
return targetPath;
}
/**
* 设定表格格式
* @param position
* @param targetExcelSheet
* @param label
* @throws IOException
* @throws BiffException
* @throws jxl.write.WriteException
*/
private void setDataLabelFormat(int position,IntanceModel model,WritableSheet targetExcelSheet,Label label) throws IOException,BiffException, WriteException {
label = new Label(0,position,model.getBy9());
targetExcelSheet.addCell(label);
label = new Label(1,position,model.getDeclarerName());
targetExcelSheet.addCell(label);
label = new Label(2,position,model.getName());
targetExcelSheet.addCell(label);
label = new Label(3,position,model.getBy5());
targetExcelSheet.addCell(label);
label = new Label(4,position,model.getDeclareTime()==null?"":SfUtil.getDateFormat(model.getDeclareTime(),2));
targetExcelSheet.addCell(label);
label = new Label(5,position,model.getUserName());
targetExcelSheet.addCell(label);
label = new Label(6,position,model.getUserPhone());
targetExcelSheet.addCell(label);
label = new Label(7,position,model.getBy7());
targetExcelSheet.addCell(label);
label = new Label(8,position,model.getBy8());
targetExcelSheet.addCell(label);
label = new Label(9,position,"");
targetExcelSheet.addCell(label);
WritableCellFormat BodyCellFormat = new WritableCellFormat();
BodyCellFormat.setBorder(jxl.format.Border.ALL,jxl.format.BorderLineStyle.THIN); //设置 border 格式
BodyCellFormat.setAlignment(jxl.format.Alignment.CENTRE);
BodyCellFormat.setVerticalAlignment(jxl.format.VerticalAlignment.CENTRE);
BodyCellFormat.setWrap(true);
targetExcelSheet.getWritableCell(0,position).setCellFormat(BodyCellFormat);
targetExcelSheet.getWritableCell(1,position).setCellFormat(BodyCellFormat);
targetExcelSheet.getWritableCell(2,position).setCellFormat(BodyCellFormat);
targetExcelSheet.getWritableCell(3,position).setCellFormat(BodyCellFormat);
targetExcelSheet.getWritableCell(4,position).setCellFormat(BodyCellFormat);
targetExcelSheet.getWritableCell(5,position).setCellFormat(BodyCellFormat);
targetExcelSheet.getWritableCell(6,position).setCellFormat(BodyCellFormat);
targetExcelSheet.getWritableCell(7,position).setCellFormat(BodyCellFormat);
targetExcelSheet.getWritableCell(8,position).setCellFormat(BodyCellFormat);
targetExcelSheet.getWritableCell(9,position).setCellFormat(BodyCellFormat);
}
private void setTimeLabelFormat(int position,IntanceModel model,WritableSheet targetExcelSheet,Label label) throws IOException,BiffException, WriteException {
String startTime = model.getDeclareTime()==null?"":SfUtil.getDateFormat(model.getDeclareTime(),2);
String endTime = model.getDeclareEndTime()==null?"":SfUtil.getDateFormat(model.getDeclareEndTime(),2);
label = new Label(1,position,startTime);
targetExcelSheet.addCell(label);
label = new Label(3,position,endTime);
targetExcelSheet.addCell(label);
WritableCellFormat BodyCellFormat = new WritableCellFormat();
BodyCellFormat.setBorder(jxl.format.Border.ALL,jxl.format.BorderLineStyle.THIN); //设置 border 格式
BodyCellFormat.setAlignment(jxl.format.Alignment.CENTRE);
BodyCellFormat.setVerticalAlignment(jxl.format.VerticalAlignment.CENTRE);
BodyCellFormat.setWrap(true);
targetExcelSheet.getWritableCell(1,position).setCellFormat(BodyCellFormat);
targetExcelSheet.getWritableCell(3,position).setCellFormat(BodyCellFormat);
}
}
分享到:
- 2008-09-02 16:02
- 浏览 1009
- 评论(0)
- 论坛回复 / 浏览 (0 / 1736)
- 查看更多
相关推荐
组态王历史数据导出EXCEL表格的方法可以分为以下几个步骤:新建画面和报表窗口、添加按钮和命令语言、报表属性和时间属性、变量选择和历史库变量、避免每次保存覆盖数据的解决措施等。通过掌握这些步骤,可以更好地...
- Excel(XLS)报表是ASP.NET中常见的一种数据导出格式,因为Excel提供了强大的数据处理和分析功能。开发者可以使用C#或VB.NET代码创建XML Spreadsheet文档,或者借助第三方库如NPOI,实现从数据库或其他数据源导出...
WinCC在生产过程中能够收集大量数据,当这些数据需要存档或分析时,通常需要将数据导出到文件中,以便于进一步处理或记录。本文将详细介绍如何将WinCC中的历史数据导出到Excel CSV文件中。 首先,要理解的是,从...
在本部分中,我们可以识别出关于iReport工具导出报表为PDF格式的一系列操作细节和知识点。iReport是一个报表设计工具,可以用来创建复杂的报表,并且可以将报表导出为多种格式,包括PDF和HTML。下面,我们将详细讲解...
Elasticsearch数据导出工具是一种高效实用的解决方案,它允许用户方便地从Elasticsearch(ES)集群中抽取数据,并将其导出到不同的目标,如MySQL数据库或本地文件系统。这款工具尤其适用于需要进行数据迁移、备份或...
1. **数据导出**:在报表系统中,数据导出通常包括选择要导出的字段、筛选条件和时间范围。系统会根据这些参数生成一个包含所有选定数据的文件。对于“导出报表至Excel”,这意味着不仅导出数值数据,还包括报表中的...
用友NC财务软件数据导出方法 用友NC财务软件是一款功能强大且广泛应用于企业财务管理的财务软件。随着企业数据的增加和复杂性,数据导出变得越来越重要。因此,本文将详细介绍用友NC财务软件数据导出方法,旨在帮助...
JasperReports是一款开源的Java报表库,它允许开发者创建、设计和显示复杂的报告。... ### 一、JasperReports...通过Java代码与报表模板的结合,可以方便地在应用程序中动态生成和导出报表,满足各种格式和数据需求。
数据导出控件是软件开发中的一个重要工具,它允许用户将各种类型的数据高效地导出到不同的文件格式中。在标题“数据导出控件,导出各种数据”中,核心概念是“数据导出控件”,这通常是指一种软件组件,能够方便地将...
本项目主题为“导出报表(全)”,涉及到的技术栈是SpringMVC和iReport,用于实现PDF和Excel格式的报表导出。下面将详细阐述这两个技术以及如何将它们结合使用。 **SpringMVC** SpringMVC是Spring框架的一个模块,...
然而,在使用Cognos导出报表到Excel的过程中,可能会遇到一些问题,比如导出失败或者无法正确显示的情况。这些问题往往与用户的浏览器设置有关。本文将详细介绍如何通过调整Internet Explorer(IE)的设置来确保...
本篇文章将详细介绍如何在WinCC中导出报表以及涉及的VB脚本知识。 首先,WinCC报表功能允许用户自定义报告模板,这些模板可以是Excel格式,因为Excel广泛用于数据分析和图表展示。在WinCC中,用户可以通过设计视图...
有时,用户可能需要将这些历史数据导出到更通用的格式,如Excel CSV文件,以便进行进一步的数据分析和处理。下面,我们将详细介绍如何实现这个过程。 首先,理解WinCC的数据归档系统。WinCC的归档功能允许用户定义...
QT操作Word导出报表是一种常见的任务,特别是在软件开发中,我们可能需要自动生成报告或文档。QT是一个跨平台的C++开发框架,它提供了一系列工具和库,使得开发者能够创建功能丰富的桌面应用,包括与Office套件如...
*********************************** *附件Table和生成Excel模块 *开发者:舒适 /************************... 传递的数据的列数必须等于该报表表头的列数否则会出现运行异常(一般情况下为相等除非后台数据出现错误)
在IT领域,表格数据导出是一项常见的操作,尤其在数据分析、报表制作以及信息管理中扮演着重要角色。这里我们将深入探讨导出表格数据的过程、涉及的文件格式以及使用Excel进行导出的相关知识。 1. **表格数据导出**...
本话题将深入探讨“数据窗口导出工具”,这是一种专门针对PB数据窗口设计的实用软件,能够帮助用户方便地将数据窗口中的数据导出为各种格式,以满足数据分析、报告生成或数据共享的需求。 首先,我们来理解一下数据...
可以将历史报警数据、日志数据、历史数据可全部导出也可按设定时间内导出到U盘,详细教程可查看我博客更多关于mcgs功能设置