【问题标题】:JavaScript Grid copy as StringJavaScript 网格复制为字符串
【发布时间】:2021-04-09 10:08:10
【问题描述】:

我在 JavaScript 上遇到了一点问题。我正在做的是从网格复制数据并粘贴到另一个网格中。我能够从单元格中访问值,但是当我尝试将这些值格式化为字符串时出现问题。 我的代码:

var colseperator = '~';
var rowseperator = '    ';

var clipStr = "";
if(selecttype = "area")
{
    for (var i = startrow; i <= endrow; i++) 
    {
        for (var j = startcol; j <= endcol; j++)
        {
            var cellValue = objGrid.getCellValue(i,j);
            if(this.gfn_isNull(cellValue))
            {
                cellValue = "Null";
            }
            clipStr = clipStr + cellValue;
            if(j != endcol)
            {
                clipStr = clipStr + colseperator;
            }
        }
        if(i != endrow)
        {
            clipStr = clipStr + rowseperator;
        }
    }
}

从上面的代码中,我的意图是将数据复制为字符串格式,并用分隔符分隔每个数据(在我的情况下,'~' 表示列,'indent' 表示行)。但是,当我选择一列(多行)并复制它时,它会为所有行添加列分隔符。 我在想if(j != endcol){clipStr = clipStr + colseperator;} 会阻止它添加不必要的分隔符。我在这里做错了吗?以及关于迭代所选网格单元格或格式化字符串的任何提示?

示例: 当我选择这三行时,

row data
1 a
2 b
3 c

输出:

a~  b~  c~

我的预期输出:

a   b   c

【问题讨论】:

  • 您有一些数据要处理吗?你想要的结果是什么,你得到了什么?

标签: javascript for-loop if-statement


【解决方案1】:

您可以为 cols 添加一个变量,如果不迭代第一项,则添加分隔符。

var colseperator = '~',
    rowseperator = '    ',
    clipStr = "";

if (selecttype = "area") {
    for (var i = startrow; i <= endrow; i++) {
        var cols = "";
        for (var j = startcol; j <= endcol; j++) {
            var cellValue = objGrid.getCellValue(i, j);
            if (this.gfn_isNull(cellValue)) cellValue = "Null";
            if (j !== startcol) cols += colseperator;
            cols += cellValue;
        }
        if (j !== startcol) clipStr += rowseperator;
        clipStr += cols;
    }
}

【讨论】:

  • 谢谢,它解决了问题。我一直在使用错误的运算符。
猜你喜欢
  • 2020-08-16
  • 2016-05-15
  • 2012-08-12
  • 1970-01-01
  • 2019-10-03
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多