You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何导出Eclipse Scout表格行(含筛选行)为CSV并支持用户下载?

Eclipse Scout 表格导出CSV并支持下载实现

核心方法使用说明

ITable.exportTableRowsAsCSV()方法可直接将指定行转换为CSV格式字符串,通过传入不同的行数组即可区分全部行和筛选后行:

  • 导出全部行:使用table.getRows()获取所有行
  • 导出筛选后行:使用table.getFilteredRows()获取当前过滤、排序后的行(默认仅包含当前分页数据)

完整实现代码示例

一般在「导出CSV」按钮的execAction方法中实现逻辑:

import java.nio.charset.StandardCharsets;
import org.eclipse.scout.rt.platform.BEANS;
import org.eclipse.scout.rt.platform.exception.ProcessingException;
import org.eclipse.scout.rt.shared.services.common.download.IDownloadService;

@Override
protected void execAction() throws ProcessingException {
    // 获取目标表格实例(替换为你的表格对象获取方式)
    ITable dataTable = getForm().getDataTableField().getTable();

    // 控制导出范围:可通过界面复选框让用户选择,这里用变量示例
    boolean exportFilteredOnly = true;
    ITableRow[] targetRows = exportFilteredOnly ? dataTable.getFilteredRows() : dataTable.getRows();

    // 生成CSV内容
    String csvContent = dataTable.exportTableRowsAsCSV(targetRows);

    // 添加UTF-8 BOM解决Excel中文乱码问题
    csvContent = "\uFEFF" + csvContent;
    byte[] csvBytes = csvContent.getBytes(StandardCharsets.UTF_8);

    // 触发浏览器下载
    IDownloadService downloadService = BEANS.get(IDownloadService.class);
    downloadService.download(
        csvBytes,
        "表格导出数据.csv",
        "text/csv; charset=utf-8",
        true
    );
}

关键注意事项

  • 分页表格全量筛选导出:若表格开启分页,getFilteredRows()仅返回当前页的筛选数据。如需导出所有分页的筛选结果,需在后台服务中重新执行筛选查询,获取全量数据后再生成CSV。
  • 列自定义导出:exportTableRowsAsCSV默认导出所有可见列,若需指定导出列,可先通过table.getColumns()筛选目标列,或手动拼接CSV内容。
  • 编码兼容:添加UTF-8 BOM(\uFEFF)可避免Excel打开CSV时出现中文乱码。

内容的提问来源于stack exchange,提问作者JDaniel

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.06.15 15:12:12