精华内容
下载资源
问答
  • php导出报表excel

    2010-11-26 23:14:00
    <?... //输出的文件类型为excel ... //提示下载 header("Content-Disposition:attachement;filename=Report_".date("Ymd").".xls"); //报表数据 $ReportArr = array( array(1,2,3,4,5),

    展开全文
  • echart 导出图形报表excel

    千次阅读 2016-03-29 14:10:45
    echart导出图片到excel
     {
                            text: '导出',
                            id:'importExcelFile',
                            iconCls: 'page_excel',
                            handler: function () {
                            
                            
                            	var data =  myChart.getDataURL("png");
    		    				$("#img").val(data);
    		    							
    	                        var startDate = Ext.isEmpty(Ext.getCmp('startDate'))?"":Ext.util.Format.date(Ext.getCmp('startDate').value,'Y-m-d');
    					        var endDate = Ext.isEmpty(Ext.getCmp('endDate'))?"":Ext.util.Format.date(Ext.getCmp('endDate').value,'Y-m-d');
    					        var startYm = Ext.isEmpty(Ext.getCmp('startYm'))?"":Ext.util.Format.date(Ext.getCmp('startYm').value,'Y-m');
    					        var endYm = Ext.isEmpty(Ext.getCmp('endYm'))?"":Ext.util.Format.date(Ext.getCmp('endYm').value,'Y-m');
    					        var statYm = Ext.isEmpty(Ext.getCmp('statYm'))?"":Ext.util.Format.date(Ext.getCmp('statYm').value,'Y-m');
    					        var statYmd = Ext.isEmpty(Ext.getCmp('statYmd'))?"":Ext.util.Format.date(Ext.getCmp('statYmd').value,'Y-m-d');
    
    					        var deptName = Ext.isEmpty(Ext.getCmp('deptName'))?"":Ext.getCmp('deptName').value;
    					        var deptOrgId = Ext.isEmpty(Ext.getCmp('deptOrgId'))?"":Ext.getCmp('deptOrgId').value;
    					        
    					        <c:if test="${fn:contains(queryCondition, '#startDate#') && fn:contains(queryCondition, '#endDate#')}">
    						        if(!Ext.isEmpty(startDate)&&!Ext.isEmpty(endDate)){
    		                        	$("#startDate").val(startDate);
    		                        	$("#endDate").val(endDate);
    		                        	$("#deptName").val(deptName);
    		                        	$("#deptOrgId").val(deptOrgId);
    		    						$("#exportForm").submit();
    						        }else{
    								    Ext.MessageBox.alert("提示框","时间不能为空!"); 
    								 }
    					        </c:if>
    							}
    	}
    	
    	
    	
    	<!-- chart -->
     	<div id="chartsDiv" style="height:350px;margin-top: 10px;"></div>
        <script src="../echart/build/dist/echarts-all.js" type="text/javascript" charset="utf-8"></script>
        <script type="text/javascript">
        			var myChart;
    	    $(function() {
    	                Ext.Ajax.request({
    	                	 method:'post',
    					   	 url: '<%=request.getContextPath()%>/chartDisplay/getChartOptions.do',
    					     params: {
    								nodeId:${nodeId},
    								startDate:${startDate},
    								endDate:${endDate},
    								startYm:${startYm},
    								endYm:${endYm},
    								statYm:${statYm},
    								statYmd:${statYmd},
    								deptName:'${deptName}',
    								deptOrgId:'${deptOrgId}'
    					     },
    					     async: true,
    						 success: function (response) 
    						 {
    							var option = Ext.decode(response.responseText);
    			            	myChart = echarts.init(document.getElementById('chartsDiv'));  
    			            	myChart.setOption(option, true);   
    						}
    					});
    		            
    	        });	 
        </script>
    	
    <form id="exportForm" action="<%=request.getContextPath()%>/chartDisplay/exportExcel.do" method="post">
    		<input type="hidden" name="img" id="img" />
    		<input type="hidden" name="startDate" id="startDate" />
    		<input type="hidden" name="endDate" id="endDate" />
    		<input type="hidden" name="statYm" id="statYm" />
    		<input type="hidden" name="endYm" id="endYm" />
    		<input type="hidden" name="statYmd" id="statYmd" />
    		<input type="hidden" name="deptName" id="deptName" />
    		<input type="hidden" name="nodeId" id="nodeId" value="${nodeId}" />
    		<input type="hidden" name="deptOrgId" id="deptOrgId" value="${deptOrgId}" />
    		<input type="hidden" name="type" id="type" value="${type}"/>
    	</form>
    	
    	
    	
    	
    	/**
    	 * 导出excel方法
    	 * @param request
    	 * @param response
        */
        @RequestMapping("exportExcel")
        public void exportExcel(HttpServletRequest request, HttpServletResponse response){
        	String data = request.getParameter("img");
        	String startDate = request.getParameter("startDate");
        	String endDate = request.getParameter("endDate");
        	String statYm = request.getParameter("statYm");
        	String endYm = request.getParameter("endYm");
        	String statYmd = request.getParameter("statYmd");
        	String deptName = request.getParameter("deptName");
        	String deptOrgId = request.getParameter("deptOrgId");
        	String nodeIdStr = request.getParameter("nodeId");
        	String type = request.getParameter("type");
        	
        	QueryCondition queryCondition=new QueryCondition();
        	if(!StringUtil.isBlank(startDate)){
        		queryCondition.setStartDate(startDate);
        	}else if(!StringUtil.isBlank(endDate)){
        		queryCondition.setEndDate(endDate);
        	}else if(!StringUtil.isBlank(statYm)){
        		queryCondition.setStatYm(statYm);
        	}else if(!StringUtil.isBlank(endYm)){
        		queryCondition.setEndYm(endYm);
        	}else if(!StringUtil.isBlank(statYmd)){
        		queryCondition.setStatYmd(statYmd);
        	}else if(!StringUtil.isBlank(deptName)){
        		queryCondition.setDeptName(deptName);
        	}else if(!StringUtil.isBlank(deptOrgId)){
        		queryCondition.setDeptOrgId(Integer.valueOf(deptOrgId));
        	}else if(!StringUtil.isBlank(type)){
        		queryCondition.setType(Integer.valueOf(type));
        	}
        	
        	Integer nodeId = null;
        	if(!StringUtil.isBlank(nodeIdStr)){
        		nodeId = Integer.valueOf(nodeIdStr);
        	}
    	 	try {
    	 	    	String userName = System.getProperty("user.name");
    	 	    	String filePath = "C:\\Users\\"+userName+"\\Desktop\\chart";
    	 	    	File file = new File(filePath);
    	 	    	if(!file.exists()){
    	 	    		file.mkdir();
    	 	    	}
    	 	    	String fileName = filePath +"\\"+ System.currentTimeMillis()+".png";
    	 	    	createImage(request, response, fileName, data);
    	 	    	createExcel(request, response, fileName,nodeId,queryCondition);
    	 	    } catch (Exception e) {
    	 	        e.printStackTrace();
    	 	  }
        	
        }
        
        
        
        public void createImage(HttpServletRequest request, HttpServletResponse response,String fileName, String data) 
    			throws ServletException, IOException {
    		try {
    	        String[] url = data.split(",");
    	        String u = url[1];
    	        byte[] b = new BASE64Decoder().decodeBuffer(u);
    	        OutputStream out = new FileOutputStream(new File(fileName));
    	        out.write(b);
    	        out.flush();
    	        out.close();			
    		} catch (Exception e) {
    			e.printStackTrace();
    		}
    	}
    	
    	public void createExcel(HttpServletRequest request, HttpServletResponse response, String fileName,Integer nodeId,QueryCondition queryCondition) 
    			throws ServletException, IOException {
    		HSSFWorkbook wb = new HSSFWorkbook();
    		HSSFSheet sheet = wb.createSheet();
    		HSSFRow row = null;
            row = sheet.createRow(60);
            HSSFCell cells = row.createCell((short) 0);
            cells.setCellType(HSSFCell.CELL_TYPE_BLANK); 
            ByteArrayOutputStream outStream = new ByteArrayOutputStream(); 
            BufferedImage bufferImg = ImageIO.read(new File(fileName));
            ImageIO.write(bufferImg, "PNG", outStream);
            HSSFPatriarch patri = sheet.createDrawingPatriarch();
            HSSFClientAnchor anchor = new HSSFClientAnchor(0, 0, 1023,100,(short) 0, 0, (short)7, 22);
            patri.createPicture(anchor, wb.addPicture(outStream.toByteArray(), HSSFWorkbook.PICTURE_TYPE_PNG));
            try {
            	OutputStream out = null;
            	response.setContentType("application/x-msdownload");
            	String sql = "";
            	String codedFileName="";
            	Object[] coloumnNames=new Object[]{};
            	String[] coloumnFields=new String[]{};
            	Map<String,Object> map=new HashMap<String, Object>();
            	if(nodeId!=null){
    	    		 //1查询出节点对应的报表sql语句
            		User user = (User) request.getSession().getAttribute(Constant.CUR_USER_SESSION);
            		map=chartDisplayServiceImp.findQueryCondition(queryCondition, user, nodeId);
    	    		Map<String,Object> fieldsMaps = chartDisplayServiceImp.findDisplayFieldNames(map);
    	    		coloumnNames = (Object[]) fieldsMaps.get("coloumnNames");
    	    		coloumnFields = (String[]) fieldsMaps.get("coloumnFields");
    	    		sql = (String)fieldsMaps.get("sqlContent");
    	    		String nodeName = (String) fieldsMaps.get("nodeName");
    	            // 进行转码,使其支持中文文件名
    	            codedFileName = java.net.URLEncoder.encode(nodeName, "UTF-8");
            	}
            	HSSFCellStyle  style = wb.createCellStyle();
                HSSFFont font = wb.createFont();
                font.setFontName("宋体");
                font.setBoldweight((short) Font.BOLD); //粗体
                font.setColor(HSSFColor.BLUE.index);    //绿字
                style.setFont(font);
                if(queryCondition.getType()!=8){//
                	//表头
                    HSSFRow row1 = sheet.createRow(23);
                    int crossLineNum = chartDisplayServiceImp.exportExcelHeaders(sheet,row1,style,coloumnNames);
                    //数据部分
            		List<Map<String,Object>> list = chartDisplayServiceImp.findChartDisplayList(map,sql);
            		chartDisplayServiceImp.exportExcelDatas(sheet,list,coloumnFields,crossLineNum);
                }
            	response.setHeader("Content-Disposition", "attachment; filename=" +codedFileName+".xls");
            	out = response.getOutputStream();	        
            	wb.write(out);
            	out.flush();
            	out.close();		
    		} catch (Exception e) {
    			e.printStackTrace();
    		}
    	}
    

    </pre><pre>
    
    
    
    展开全文
  • 导出word/PDF正常 导出Excel提示导出DLL:检测到错误
  • 按照上篇博客《报表导出Excel 一 :根据业务需求设计Excel导出模板》,已经做好了报表模板,接下来简单串一下我们用到的具体service类。 首先是,单元格cell对应的实体对象ReplaceItem, d通过这个实体类,可以具体...
        按照上篇博客《报表导出Excel 一 :根据业务需求设计Excel导出模板》,已经做好了报表模板,接下来简单串一下我们用到的具体service类。

        首先是,单元格cell对应的实体对象ReplaceItem, d通过这个实体类,可以具体定义每一个cell。
    public class ReplaceItem {
        private int rowspan;// Excel单元格行
        private int colspan;// Excel单元格列
        private String backgroundColor;//背景色
        private String key;//变量名
        private String value;//文本值
    
        public ReplaceItem() {
        }
        public ReplaceItem(String key, String value) {
            this.key = key;
            this.value = value;
        }
        public int getRowspan() {
            return rowspan;
        }
        public void setRowspan(int rowspan) {
            this.rowspan = rowspan;
        }
        public int getColspan() {
            return colspan;
        }
        public void setColspan(int colspan) {
            this.colspan = colspan;
        }
        public String getBackgroundColor() {
            return backgroundColor;
        }
        public void setBackgroundColor(String backgroundColor) {
            this.backgroundColor = backgroundColor;
        }
        public String getKey() {
            return key;
        }
        public void setKey(String key) {
            this.key = key;
        }
        public String getValue() {
            return value;
        }
        public void setValue(String value) {
            this.value = value;
        }
    }
    


        下面是主要的写excel的service,genExcelReport方法会根据传入的queryMap生成一个文件流到response中。
    public static void genExcelReport(OutputStream os, Map<String, String> queryMap, String plantId, String localeName ,String userId) throws Exception {
            List<ReplaceItem[]> datas = new ArrayList<ReplaceItem[]>();
            String reportType = queryMap.get("reportType");
            if ("DL1".equalsIgnoreCase(reportType)) {//DL1 管理程序列表清单
                queryMap.put(MetadataConstants.NUCLEAR_STATUS, "Available");
                managementProcedureStatementExport(os, queryMap, reportType, plantId);
            }
    }
    


         这里要根据具体业务,来将查询到的数据组合成ReplaceItemList。
    private static void managementProcedureStatementExport(OutputStream os, Map<String, String> queryMap,String reportType , String plantId){
          List<ReplaceItem[]> datas = new ArrayList<ReplaceItem[]>();
    
          //下面是查询FileNet CE 中文档数据,Excel中数据来源于DocumentList
          String pattern = "yyyy-mm-dd";
          String startNuclearYear = queryMap.get("startNuclearYear");
          String endNuclearYear = queryMap.get("endNuclearYear");
          String bizCode = "ManageProcess";
          String osName = BizCodeConstants.getObjectNameByBizCode(bizCode);
          String whereClause = "",propertyCondition = "",statusCondition = "",timeCondition="";
          String symbolicClassName = "P"+plantId+"_ManagementProcedure";
            propertyCondition = SqlBuildCommonService.addCondition(propertyCondition, true, MetadataConstants.RECORD_CODE, true, queryMap);
            propertyCondition = SqlBuildCommonService.addCondition(propertyCondition,true,MetadataConstants.NUCLEAR_DOMAIN, true, queryMap);
            propertyCondition = SqlBuildCommonService.addCondition(propertyCondition,true,MetadataConstants.RECORD_CHINESE_TITLE, true, queryMap);
            propertyCondition = SqlBuildCommonService.addCondition(propertyCondition,true,MetadataConstants.CREATED_UNIT, true, queryMap);
            statusCondition = SqlBuildCommonService.addCondition(statusCondition, true, MetadataConstants.NUCLEAR_STATUS,true, queryMap);
    
            timeCondition = SqlBuildCommonService.addTimeCondition(timeCondition, MetadataConstants.NUCLEAR_YEAR,
                            queryMap.get("startNuclearYear"), queryMap.get("endNuclearYear"));
           
           
            whereClause = SqlBuildCommonService.addWhereClause(whereClause, propertyCondition);
            whereClause = SqlBuildCommonService.addWhereClause(whereClause, statusCondition);
            whereClause = SqlBuildCommonService.addWhereClause(whereClause, timeCondition);
          List<Document> docList = P8DocumentDao.searchForDocuments(ObjectStoreHelper.getObjectStore(osName), symbolicClassName, true, whereClause);             
            ReplaceItem vo = new ReplaceItem();
            vo.setKey("reportDate");
            Date startDate = DateFormatUtils.parseDate(startNuclearYear, pattern);
            Date endDate = DateFormatUtils.parseDate(endNuclearYear, pattern);
            vo.setValue("发布时间:"+new SimpleDateFormat("yyyy年MM月dd日").format(startDate)+"-"+
                      new SimpleDateFormat("yyyy年MM月dd日").format(endDate));
            ReplaceItem[] reportDateArr = {vo};
            datas.add(reportDateArr);//数组第一行必须要放报表日期,切记!!!
            for (Document doc : docList) {
                BaseDocumentMapper baseDocMapper = new BaseDocumentMapper();
                BaseDocument baseDoc = baseDocMapper.map(doc);
                
                ReplaceItem[] arr = new ReplaceItem[12];
                ReplaceItem vo1 = new ReplaceItem();
                vo1.setKey("RecordCode");
                vo1.setValue(baseDoc.getProperties().get(MetadataConstants.RECORD_CODE).toString());
                ReplaceItem vo2 = new ReplaceItem();
                vo2.setKey("RecordChineseTitle");
                vo2.setValue(baseDoc.getProperties().get(MetadataConstants.RECORD_CHINESE_TITLE).toString());
                ReplaceItem vo3 = new ReplaceItem();
                vo3.setKey("NuclearVersion/NuclearRevision");
                vo3.setValue(baseDoc.getProperties().get(MetadataConstants.NUCLEAR_VERSION)+"/"+
                            baseDoc.getProperties().get(MetadataConstants.NUCLEAR_REVISION));
                ReplaceItem vo4 = new ReplaceItem();
                vo4.setKey("NuclearDomain");
                vo4.setValue(baseDoc.getProperties().get(MetadataConstants.NUCLEAR_DOMAIN).toString());
                ReplaceItem vo5 = new ReplaceItem();
                vo5.setKey("CreatedUnit");
                vo5.setValue(baseDoc.getProperties().get(MetadataConstants.CREATED_UNIT).toString());
                ReplaceItem vo6 = new ReplaceItem();
                vo6.setKey("NuclearStatus");
                vo6.setValue(baseDoc.getProperties().get(MetadataConstants.NUCLEAR_STATUS).toString());
                ReplaceItem vo7 = new ReplaceItem();
                vo7.setKey("NuclearCreator");
                vo7.setValue(baseDoc.getProperties().get(MetadataConstants.NUCLEAR_CREATOR).toString());
                ReplaceItem vo8 = new ReplaceItem();
                vo8.setKey("Checker");
                vo8.setValue(baseDoc.getProperties().get(MetadataConstants.CHECKER).toString());
                ReplaceItem vo9 = new ReplaceItem();
                vo9.setKey("Examiner");
                vo9.setValue(baseDoc.getProperties().get(MetadataConstants.EXAMINER).toString());
                ReplaceItem vo10 = new ReplaceItem();
                vo10.setKey("Approver");
                vo10.setValue(baseDoc.getProperties().get(MetadataConstants.APPROVER).toString());
                ReplaceItem vo11 = new ReplaceItem();
                vo11.setKey("NuclearYear");
                vo11.setValue(baseDoc.getProperties().get(MetadataConstants.NUCLEAR_YEAR).toString());
                ReplaceItem vo12 = new ReplaceItem();
                vo12.setKey("NuclearAnnotation");
                vo12.setValue(baseDoc.getProperties().get(MetadataConstants.NUCLEAR_ANNOTATION).toString());
                arr[0] = vo1; arr[1] = vo2; arr[2] = vo3; arr[3] = vo4; arr[4] = vo5; arr[5] = vo6;
                arr[6] = vo7; arr[7] = vo8; arr[8] = vo9; arr[9] = vo10; arr[10] = vo11; arr[11] = vo12;
                datas.add(arr);
            }
            JexcelFiles.excelReportGenerator(os, datas, reportType, 5);
    }
    
    
    public static boolean excelReportGenerator(OutputStream os, List<ReplaceItem[]> datas, String sheetName, intdataRowNum) {
            boolean bool = true;
            if (datas == null) {
                return false;
            }
            String sourceFilePath = Thread.currentThread().getContextClassLoader().getResource("").getPath() + "conf"
                    + File.separator + "template" + File.separator + "report_template_v1.5.xls";
            try {
                POIFSFileSystem fs = new POIFSFileSystem(new FileInputStream(sourceFilePath));
                HSSFWorkbook wb = new HSSFWorkbook(fs);
                HSSFSheet sheet = null;
                int activeSheet = 0;
                for (int i = 0; i < wb.getNumberOfSheets(); i++) {//找到模板正确的sheet页
                    sheet = wb.getSheetAt(i);
                    if (sheet.getSheetName() != null && sheet.getSheetName().startsWith(sheetName)) {//入库信息统计表
                        activeSheet = i;
                        break;
                    }
                }
                //wb.setActiveSheet(activeSheet);
                for (int i = wb.getNumberOfSheets() - 1; i >= 0 ; i--) {//裁剪多余的sheet页
                    if (i != 0 && i != activeSheet) {
                        wb.removeSheetAt(i);
                    }
                }
                //1、填充报表输出日期
                Row row = sheet.getRow(3);
                if (datas.get(0) != null && datas.get(0)[0] != null) {
                    for (int i = 0; i < row.getLastCellNum(); i++) {
                        Cell cell = row.getCell(i);
                        String name = cell.getStringCellValue();
                        ReplaceItem data = datas.get(0)[0];//这里规定第一行为报表输出日期
                        if (name != null && name.indexOf("$" + data.getKey()) != -1) {
                            cell.setCellValue(name.replaceAll("\\$" + data.getKey(), data.getValue()  == null ? "" : data.getValue()));
                            break;
                        }
                    }
                    datas = datas.subList(1, datas.size());//使用完毕后,抛弃第一行
                }
    
                Map<Integer, String> relMap = new HashMap<Integer, String>();//列数与变量的对应关系
                int startRow = dataRowNum, startCol = 0;
                HSSFCellStyle tableStyle = NFExcelStyle.getTableRow(wb, "");
                row = sheet.getRow(startRow);
                //2、填充数据行中的第一行,并且找到列数与变量的对应关系
                for (int i = 0; i < row.getLastCellNum(); i++) {
                    sheet.autoSizeColumn(i, true);//表格内容自适应
                    Cell cell = row.getCell(i);
                    if(cell == null) continue;
                    String name = cell.getStringCellValue();
                    for (int j = 0;  j < datas.size(); j++) {
                        ReplaceItem[] data = datas.get(j);
                        for (int k = 0; k < data.length; k++) {
                            if (name != null && name.equals("$" + data[k].getKey())) {
                                relMap.put(startCol + data[k].getColspan(), data[k].getKey());
                                NFExcelStyle.createMergedCell(wb, sheet, startRow, startRow + data[k].getRowspan(),
                                        startCol, startCol + data[k].getColspan(), (i == 0), tableStyle,
                                        (data[k].getValue() == null || "null".equals(data[k].getValue())) ? "" : data[k].getValue());
                                break;
                            }
                        }
                        startCol++;
                        break;
                    }
                }
                Iterator it= relMap.keySet().iterator();
                StringBuffer excelVar = new StringBuffer();
                while(it.hasNext()){
                    excelVar.append(",").append(relMap.get(it.next()));
                }
                System.out.println("Excel $Var  List +++++++++++++++++++     "+ excelVar.toString() + "         +++++++++++++++++++Excel $Var  List");
                startRow++;
                //3、开始后面数据行内容填充
                for (int i = 1; i < datas.size(); i++) {
                    ReplaceItem[] rowData = datas.get(i);
                    for (int j = 0; j < rowData.length; j++) {
                        startCol = j;
                        for (int k = 0; k < rowData.length; k++) {
                            if (relMap.get(j).equals(rowData[k].getKey())) {
                                System.out.println("key:"+rowData[k].getKey()+"    value:"+rowData[k].getValue());
                                long d = new Date().getTime();
                                NFExcelStyle.createMergedCell(wb, sheet, startRow, startRow + rowData[k].getRowspan(),
                                        startCol, startCol + rowData[k].getColspan(), (j == 0), tableStyle,
                                        (rowData[k].getValue() == null || "null".equals(rowData[k].getValue()) ) ? "" : rowData[k].getValue());
                                long d2 = new Date().getTime();
                                System.out.println("执行时间:"+(d2-d));
                                break;
                            }
                        }
                    }
                    startRow++;
                }
                // 输出流
                wb.write(os);
            } catch (Exception e) {
                bool = false;
                e.printStackTrace();
            }
            return bool;
    }
    


        基本的报表导出excel的功能点都满足了,有数据、有模板,然后构造一个数据写入excel的桥梁,最后把excel类型文件流输出到response中,就能在页面上弹出“Excel 下载提示“了。



    展开全文
  • Birt报表导出excel(支持图片导出)

    千次阅读 2013-10-15 19:44:10
    由于项目需求需要birt报表导出excel文件包含图表,结合网上资料和尝试得出了较为完美的解决方案。 1、到http://sourceforge.net/projects/tribix/files/下载birt报表预览xls开发插件,注意匹配birt版本,如birt2.3...

    由于项目需求需要birt报表导出的excel文件包含图表,结合网上资料和尝试得出了较为完美的解决方案。

    1、到http://sourceforge.net/projects/tribix/files/下载birt报表预览xls开发插件,注意匹配birt版本,如birt2.3版本对应xls-emitter-bin_2.3.0.zip版本,然后解压备用;

    2、下载与该版本对应的poi包,如xls-emitter_2.3.0使用的是poi-3.1-FINAL-20080629.jar,放在刚解压完后的plugins/org.uguess.birt.report.engine.emitter.xls_2.3.0.200807241457/lib目录下,需要下载什么版本的poi包在此lib目录有提示;

    3、将plugins目录下的文件拷贝到web工程里的WEB-INF/platform/plugins目录下,删除org.eclipse.birt.report.engine.emitter.prototype.excel_2.3.1.v20080917.jar文件(不同birt版本该文件版本号不同);

    大功告成,现在可以部署web工程测试了!

    注:由于Tribix - Extended Emitters for BIRT最新版本只为2.5.0,经测试,birt2.3与birt2.5.2的版本均能正常导出带图片的xls文件,高版本的birt未测试,有需要的朋友建议使用xls-emitter_2.5.0版本尝试。另外该插件是开源的,好消息!

    展开全文
  • Asp.net 导出Excel报表

    2010-07-05 09:52:00
    当用asp.net导出excel报表时,提示"不能清楚剪贴板",Com Exception ‘’不能清楚剪贴板,这样的错误...   原因是导出报表并将其进行在指定的具体目录保存时,该目录对某些用户不具备写的权限造成的!
  • C#导出Excel报表

    2012-09-12 11:44:07
    在使用前首先需要添加引用:Microsoft.Office.Interop.Excel,然后在调用页添加如下语句: .../// 导出Excel格式文件 /// /// 作为数据源的DataTable /// 带路径的保存文件名 /// 一个Excel sheet的标
  • ireport导出Excel报表的实现

    千次阅读 2018-01-09 17:11:21
    提示:对于新手来说,可以先将本文通篇看一下,先行理解,然后再自己手动操作一回。文章中截图较多,看似繁琐,其实只是为了让新手参考而已。 一、下载报表制作工具  从iReport官方地址...
  • java导出excel报表

    2014-11-13 10:44:00
    1.java导出excel报表: package cn.jcenterhome.util;import java.io.OutputStream;import java.util.List;import java.util.Map;import javax.servlet.http.HttpServletResponse;import jxl.Workbook;import jxl....
  • 最近因项目需要,需要开发一个模块,把系统中的一些数据导出Excel,修改后再导回系统。...修改这种文件后再保存,通常会提示你是否要转换成Excel文件。 优点:简单。 缺点:难以生成格式,如果用来导入需要自己分
  • Spring MVC+ Ireport 做统计报表,导出HTML、EXCEL等格式的文件
  • .NetCore+EPPlus导出Excel报表

    千次阅读 2018-07-23 14:05:52
    .NetCore+EPPlus导出Excel报表 适用于跨平台部署 NuGet引入EPPlus.Core 定义公共调用方法 完成调用 NuGet引入EPPlus.Core 因为本人使用的框架是.NetCore 2.0版,使用docker发布在Linux上。引入最新版本的...
  • VB导出Excel报表

    2014-03-30 00:23:00
    VB 是常用的应用软件开发工具之一,由于VB的报表功能有限,而且一但报表格式发生变化,就得相应修改程序,给应用软件的维护工作带来极大的不便。因此有很多程序员现在已经充分利用EXECL的强大报表功来实现报表功能。...
  • 用VBScript导出EXCEL报表

    2010-08-05 22:35:00
    分类:JavaScript TABLE导出EXCEL进行报表打印 TablePrint函数有两个参数,一个是页面Table的ID,一个是报表的标题,都是字符串变量。如: <table id="table1" > <tr> <td></td>1<td>...
  • Spring Boot导出Excel表格 技术选型: 后台:Sprig Boot ... 用途: Excel文件在公司中常用作报表数据的导出 前台: <div class="yu-toolBar"> <el-button-group> <el-button icon...
  • 润乾报表页面超过255列导出excel

    千次阅读 2016-11-29 17:56:51
    这样如果不做任何处理,直接在页面上点击导出excel的按钮,就会弹出对话框提示excel不支持超过255列,也就无法正常导出,所以要想导出这样的报表就必须采取一些特殊的设置,下面就做一个简单的例子,实现超过255列的...
  • UFO报表另存为Excel提示:可能没有正确安装Excel-附件资源
  • Jsp中导出Excel报表

    2010-11-12 19:19:39
    在开发MIS系统的过程中,客户经常会提出这样的要求:将查询结果导出Excel文件保存下来。经常是写一次就忘一次,因此决定今天将以前的代码和遇到的问题进行一下总结,下面进入正题。背景:本例的代码来源于我给学校...
  • 导出报表

    2017-03-29 21:48:12
     String result="系统提示Excel文件导出成功!";   // 以下开始输出到EXCEL  try {   //定义输出流,以便打开保存对话框______________________begin  response.reset();// 清空输出流   ...
  • 特别是数据的导出,在生产管理或者财务系统中用的非常普遍,因为这些系统经常要做一些报表打印的工作。而数据导出的格式一般是EXCEL或者PDF,我这里就用两篇文章分别给大家介绍下。(注意,我们这里说的数据导出可...
  • package nc.ui.fh.des.excel; import java.io.*;import java.util.HashMap;import java.util.Iterator;import java.util.Map;import java.util.Set;import java.util.Vector;import java.util.Map.Entry; import.....
  •  saveFileDialog.Title = "导出Excel文件到";  DateTime now = DateTime.Now;  saveFileDialog.FileName = now.Year.ToString().PadLeft(2) + now.Month.ToString().PadLeft(2, '0') + now.Day.ToString()....
  • using System; using System.Collections.Generic; using System.Text; using System.IO; using System.Data; using System.Windows.Forms;...using Microsoft.Office.Interop.Excel; namespace Property_man
  • SAP关于标准ALV报表导出Excel的问题与解决:长数字 描述:在使用标准ALV功能时,使用本地文件可以把内容导到EXCEL中 问题:如果在报表中有类似银行账户、身份证号等较长数字的字段,直接导出EXCEL,在EXCEL中...
  • Apache之 excel的POI报表导出 这是最装逼的一个 可以在页面弹出可提示下载的选择框,存储选择路径 与平常的下载一般无二
  • js导出报表

    千次阅读 2017-10-28 15:21:12
    需求:项目中有一个学生签到模块需要导出每天的签到数据,一开始用poi在后台导出,window下运行没什么问题,但是把项目部署到linux环境上,提示导出路径不存在,思索良久也没有找到解决的办法,最后只能在前端使用js...
  • 通常我们在浏览报表的时候,可以通过润乾自带的标签实现导出Excel,在点击导出的标签后,页面会弹出一个提示框,可以让用户对于导出Excel设置是否分页,是否导出公式,对话框如下图所示。 当用户想直接导出excel...

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 6,134
精华内容 2,453
关键字:

导出报表提示excel未安装