buttons.exportData()
自:按钮 1.0.0
从适合导出的 DataTable 中获取数据。
请注意 - 此属性需要 DataTables 的 按钮 拓展。
描述
通常希望使用按钮从 DataTable 中获取数据,以便以某种形式导出(复制到剪贴板、保存到 Excel 等)。由于多个插件按钮类型可能需要此操作,因此 Buttons 为 DataTables 提供此方法,以便快速轻松地从 DataTable 中获取适合导出的形式的数据。
从本质上讲,此方法将返回一个对象,其中包含表格的页眉、页脚和正文信息。然后由调用者决定如何导出该数据 - 例如,对于 CSV 文件,可以使用逗号将每行的项目连接起来,然后使用新行将行连接起来。
从 Buttons 1.5.0 开始,此方法导出的数据将自动尝试确定表格中是否有任何行被选中。如果选中,导出将仅限于这些行。如果未选中任何行,则将导出完整的数据集。
如果你不想要此行为,可将 modifier
对象的 selected
选项设置为 null
。它会将所有行包括在导出中,而不考虑是否有任何行被选中。同样,如果你想强制导出仅包含选定的行,即使未选中任何行(即没有行会导出),可将此参数设置为 true
。
类型
函数 buttons.exportData( [ 选项 ] )
- 描述
通过保存到文件或复制到剪贴板从适合导出的 DataTable 中获取数据。
- 参数
名称 类型 可选 1 选项
是 此选项用于定义从表格中读取哪些数据,以及如何修改该数据(如果需要)以适合导出。
对象具有以下属性
行选择器
行
- 所用的行选择器。默认 - 所有行列选择器
列
- 所用的列选择器。默认 - 所有列选择器修改器
修改器
- 表格的排序和搜索状态应如何应用。默认 -{search: 'applied', order: 'applied'}
字符串
正交
- 在获取单元格数据时请求什么 正交数据类型。默认显示
- 即表格中显示的数据。布尔值
剥离 HTML
- 指示是从读取数据中剥离 HTML(true
)还是不剥离(false
)。默认 -true
。布尔值
剥离换行符
- 指示是从读取数据中剥离换行符(true
)还是不剥离(false
)。默认 -true
。布尔型
decodeEntities
- 指明是否解码 HTML 实体 (true
) 及其禁用 (false
) - 例如>
将变成>
。对于较大的表格,您可能希望禁用此选项,因为它会降低性能。默认值 -true
。布尔型
trim
- 指明是否从值起始和末尾处移除空白 (true
) 或不移除 (false
)。默认值 -true
。对象
format
(自 1.1.0 起) - 导出将使用的单元格格式化函数的容器对象函数
format.header
- 格式化标题单元格中数据的函数 - 默认函数会移除 HTML 标记。返回值用于导出数据的列标题中。传递三个参数
- 单元格的 innerHTM
- 单元格的列索引。
- 单元格节点 (自 Buttons 1.2.2 起)
函数
format.footer
- 格式化页脚单元格中数据的函数。- 默认函数会移除 HTML 标记。返回值用于导出数据的列页脚中。传递三个参数
- 单元格的 innerHTML
- 单元格的列索引
- 单元格节点 (自 Buttons 1.2.2 起)
函数
format.body
- 格式化表格主体单元格中数据的函数 - 默认函数会移除 HTML 标记。返回值用于导出数据中的每个单元格中。传递四个参数
- 单元格的 innerHTML
- 单元格的行索引
- 单元格的列索引
- 单元格节点 (自 Buttons 1.2.2 起)
函数
customizeData
(自 Buttons 1.5.2 起) - 用于修改导出数据,经过上述格式化选项收集和预处理之后。传递了一个参数且不期望返回值(变异传递的对象以修改数据)
- 用于导出的数据。这是一个具有以下属性的对象
header
- 标题数据数组footer
- 页脚数据数组body
- 主体数据二维数组。
- 返回
具有三个参数的对象
header
- 选定列的标题数据数组footer
- 选定列的页脚数据数组body
- 数组数组,每个内部数组分别表示一个行,其项为选定列的单元格。
示例
导出表格中的所有数据
var table = new DataTable('#myTable');
var data = table.buttons.exportData();
// Do something with the 'data' variable
仅导出选定行(带 Select 扩展)
var table = new DataTable('#myTable');
var data = table.buttons.exportData({
modifier: {
selected: true
}
});
// Do something with the 'data' variable
仅获取可见列的数据
var table = new DataTable('#myTable');
var data = table.buttons.exportData({
columns: ':visible'
});
// Do something with the 'data' variable
格式化标题单元格 - 添加列索引
var table = new DataTable('#myTable');
var data = table.buttons.exportData({
format: {
header: function (data, columnIdx) {
return columnIdx + ': ' + data;
}
}
});
// Do something with the 'data' variable