页面树结构
转至元数据结尾
转至元数据起始

正在查看旧版本。 查看 当前版本.

与当前比较 查看页面历史

« 前一个 版本 2 下一个 »

在导出电子表格的时候,常有如下问题,

1、导出Excel传递的参数

导出接口为smartbi.sdk.service.spreadsheetreport.SSReport 类的

public void doExport(java.lang.String type,
                     java.io.OutputStream os)方法
type参数说明:
type - 导出格式,有以下几个备选值 PDF、PNG、WORD、EXCEL2007(常用)、LIST_EXCEL(清单表导出Excel专用)、EXCEL(输出Excel2003)、HTML、CSV
针对分组表/Excel分析:PDF、PNG、WORD、EXCEL2007(常用)、EXCEL(输出Excel2003)、HTML
针对清单表:LIST_EXCEL(清单表导出Excel专用)、CSV


如果导出清单表的Excel格式传递的type参数值是EXCEL2007,导出的文件中只有清单报表的第一页数据,需要把typee参数值改为LIST_EXCEL导出就可以解决。


2、如何判断报表是分组报表还是清单报表

目前没有封装对外的api获取报表类型,可以参考如下方法获取

获取电子表格的报表类型
   /**
	 * 获取电子表格类型
	 */
	public static int getSSReportType(){
		ClientConnector connector = new ClientConnector("http://192.168.1.10:17300/smartbi");
		boolean open = connector.open("admin", "admin");
		String resId = "I4028818a015f906290629888015f9505e9ea4c2a";  //电子表格资源id
		if (open) {
			InvokeResult remoteInvoke = connector.remoteInvoke("SpreadsheetReportModule", "openQueryInPage", new Object[] {resId,null});
			JSONObject originalResult = remoteInvoke.getOriginalResult();
			JSONArray jsonArray = originalResult.getJSONArray("result");
			JSONObject jsonObject = (JSONObject)jsonArray.get(0);
			JSONObject jsonObjectSet = jsonObject.getJSONObject("settings");
			int reportType = jsonObjectSet.getInt("reportType");
			if (reportType == 0) {
				System.out.println("分组报表");
			} else if (reportType == 1) {
				System.out.println("清单报表");
			} else if (reportType == 2) {
				System.out.println("Excel融合分析");
			}
			return reportType;
		}else{ 
			System.out.println("登录失败,无法获取报表类型");
			return -1;
		}
	}



  • 无标签