仅导出 DataWindow 中的某些列的最简单方法是设置数据源,以便您想要的列是前 N 列。我将使用所有列 dw_all 调用 DataWindow。接下来将 dw_all 保存为 dw_some,然后从数据源中删除 N 之后的列。然后,假设 dw_all 在 ds_all 中并且有您的数据,并且 dw_some 在 ds_some 中并且为空:
ll_rows = ds_all.rowcount()
ds_some.object.data[1, 1,ll_rows,N] = ds_all.object.data[1,1,ll_rows,N]
您可以更改 ds_all 的开始列和结束列,以将列块复制到中间或最后 N 列之外,但是当您制作 dw_some 时,您必须注意列的类型和大小,而执行另存为并删除 N 之后的列几乎是万无一失的。
最后,您可以使用不匹配的 DataWindows 并一次复制第一列的列和块。我希望下面的示例说明了为什么按照我推荐的方式制作 DataWindows 会更好。判断这是否正确的唯一方法是仔细检查两个 DataWindows 中的数据源:
dw_excel.Object.Data[1,1,il_rows,1] = dw_report.Object.Data[1,1,il_rows,1]
dw_excel.Object.Data[1,2,il_rows,3] = dw_report.Object.Data[1,3,il_rows,4]
dw_excel.Object.Data[1,4,il_rows,12] = dw_report.Object.Data[1,5,il_rows,13]
dw_excel.Object.Data[1,13,il_rows,13] = dw_report.Object.Data[1,15,il_rows,15]
dw_excel.Object.Data[1,14,il_rows,14] = dw_report.Object.Data[1,25,il_rows,25]
dw_excel.Object.Data[1,15,il_rows,20] = dw_report.Object.Data[1,17,il_rows,22]
注意:在尝试使用此类数据表达式之前,请确保行数 > 0。