电脑桌面
添加蚂蚁七词文库到电脑桌面
安装后可以在桌面快捷访问

如何调用标准excel导出组件

来源:金蝶云社区作者:金蝶2024-09-226

如何调用标准excel导出组件

# 需求 如何将报表或是序时簿导出成excel2007格式。 # 实现步骤 ## 报表导出 报表导出首先需要获取报表Book对象,可以通过如下代码获取。 ```java import com.kingdee.bos.metadata.entity.EntityViewInfo; import com.kingdee.bos.metadata.entity.FilterInfo; import com.kingdee.bos.metadata.entity.FilterItemInfo; import com.kingdee.bos.metadata.entity.SelectorItemInfo; import com.kingdee.bos.metadata.query.util.CompareType; import com.kingdee.eas.fi.gr.cslrpt.CslReportCollection; import com.kingdee.eas.fi.gr.cslrpt.CslReportFactory; import com.kingdee.eas.fi.gr.cslrpt.CslRptUtil; public Map<ReportBaseInfo> getReports() throws BOSException { //创建查询视图 EntityViewInfo view =new EntityViewInfo(); view.getSelector().add(new SelectorItemInfo("*")); view.getSelector().add(new SelectorItemInfo("company.*")); Set<String> set=new HashSet<String>(); //添加报表ID set.add("id1"); view.setFilter(new FilterInfo()); //设置过滤条件为id in set view.getFilter().getFilterItems().add(new FilterItemInfo("id",set,CompareType.INCLUDE)); Map<String,ReportBaseInfo> reportMap = new HashMap<String,ReportBaseInfo>(); //根据报表类型获取报表实体 if(getUIContext().get("isCslRpt")!=null&&(Boolean)getUIContext().get("isCslRpt")){ CslReportCollection col = CslReportFactory.getRemoteInstance().getCslReportCollection(view); for(int i = 0 ; i < col.size() ; i ++){ reportMap.put(col.get(i).getId().toString(), col.get(i)); } }else{ ReportCollection col = ReportFactory.getRemoteInstance().getReportCollection(view); for(int i = 0 ; i < col.size() ; i ++){ reportMap.put(col.get(i).getId().toString(), col.get(i)); } } return reportMap; } ``` 通过上面的报表ReportBaseInfo对象获取里面的book对象调用导出。 ```java //客户端导出 import com.kingdee.eas.fi.gr.cslrpt.client.CslRptUIUtil; import com.kingdee.bos.ctrl.excel.model.struct.Book; //遍历报表对象map for (String k : reportMap.keySet()) { ReportBaseInfo info = reports.get(k); Book book = info.getBook(); //设置工作簿对象不需要计算,很关键一定要进行设置 book.setCalculate(false); try { //客户端导出可以调用这个工具类进行导出,如果在服务端调用会报错。 CslRptUIUtil.exportToExcel2007(book, "c:/test.xlsx", -1); CslRptUIUtil.exportToExcel2007After(); } catch (Exception e) { logger.error("export error", e); fail.append(" exportToExcel error:"+e.getMessage()).append("\n\n"); } } ``` ```java //服务端导出 import com.kingdee.eas.fi.gr.cslrpt.client.CslRptUIUtil; import com.kingdee.bos.ctrl.excel.model.struct.Book; import com.kingdee.bos.ctrl.kdf.excel.AbstractDataWrapper; import com.kingdee.bos.ctrl.kdf.excel.wrapper.IExportWrapper; import com.kingdee.bos.ctrl.kdf.excel.wrapper.SXSSFExportWrapper; import com.kingdee.bos.ctrl.kdf.excel.BookDataWrapper; //遍历报表对象map for (String k : reportMap.keySet()) { ReportBaseInfo info = reports.get(k); Book book = info.getBook(); //设置工作簿对象不需要计算,很关键一定要进行设置 book.setCalculate(false); //创建报表数据转换类 BookDataWrapper bookDataWrapper = new BookDataWrapper(book); //设置导出公式 bookDataWrapper.setExportFormula(true); //设置导出业务公式 bookDataWrapper.setExportCustomerFomulas(true); //下面两个导出隐藏行和列必须设置为true,否则导出包含融合块的报表会抛出异常 bookDataWrapper.setExportHideCols(true); bookDataWrapper.setExp

如何调用标准excel导出组件

# 需求如何将报表或是序时簿导出成excel2007格式。# 实现步骤## 报表导出报表导出首先需要获取报表Book对象,可以通过如下代码获取。```...
点击下载文档文档为doc格式

声明:除非特别标注,否则均为本站原创文章,转载时请以链接形式注明文章出处。如若本站内容侵犯了原著者的合法权益,可联系本站删除。

已经是第一篇
确认删除?
回到顶部
客服QQ
  • 客服QQ点击这里给我发消息
QQ群
  • 答案:my7c点击这里加入QQ群
支持邮箱
微信
  • 微信