本帖最后由 Richard.Huang 于 2024-4-24 14:10 编辑
您好,经过调研我们发现这是因为您的单元格中的日期是字符串,例如“2024-10-10”,这个是无法自动转换成日期类型的,
而我们手动输入的值自动转换成日期的单元格的值是日期型数据,例如:Thu Oct 10 2024 00:00:00 GMT+0800 (中国标准时间),
因此为了保证您期望转换成YYYY/MM/DD的样式,两种办法,一种是调用代码将单元格设置成日期格式,第二种就是修改您数据库中的日期存储的值,让他变成能够被SpreadJS转换的值类型。
对于您的第二个问题,主要是由于您的模板文件中单元格里已经被设置好了style,而单元格的style优先级是最高的,因此没有自动继承您表格前一行的样式。
综上,您可以在setDataSource之后通过copyTo方法将您的所有样式进行统一,以下是示例代码;
- sheet.resumePaint() // 挂起绘制提升性能
- sheet.setDataSource(source); // 设置了数据源
- sheet.tables.all().forEach(function (table, index) {
- var range = table.range();
- var sampleRange = {
- // 第一行是我们的样式示例
- row: range.row + 1,
- col: range.col,
- rowCount: 1,
- colCount: range.colCount,
- };
- var dataRange = {
- // 下面行沿用第一行数据行的样式
- row: range.row + 2,
- col: range.col,
- rowCount: range.rowCount - 2,
- colCount: range.colCount,
- };
- for (var i = 0; i < dataRange.rowCount; i++) {
- sheet.copyTo(
- sampleRange.row,
- sampleRange.col,
- dataRange.row + i,
- dataRange.col,
- 1,
- dataRange.colCount,
- GC.Spread.Sheets.CopyToOptions.style
- );
- }
- });
- sheet.resumePaint()// 恢复绘制
复制代码
|