【问题标题】:jQuery calculate column count from excel rangejQuery从excel范围计算列数
【发布时间】:2017-04-04 17:45:16
【问题描述】:

我有一个 C# Web 表单,用户在其中将有关 excel 文件的数据输入到多个文本框中,包括:

  • TXT_FirstDataRow - 表示包含数据的第一行的整数字段
  • TXT_LastDataColumn - 字符串字段,表示包含数据的最后一列
  • TXT_Range - 字符串字段,包含使用上述两个字段计算的数据范围
  • TXT_ColumnCount - 计算范围内的列数

我目前正在使用 jQuery 使用以下代码自动计算数据范围,效果很好:

$('#TXT_FirstDataRow,#TXT_LastDataColumn').keyup(function () {

    var row = $('#TXT_FirstDataRow').val();
    var column = $('#TXT_LastDataColumn').val();
    var range = 'A' + row + ':' + column; //All ranges start at column A

    $('#TXT_Range').val(range);
});

我现在想用列数自动填充TXT_ColumnCount。例如:

Range |Column Count
------+------------
A1:C  |3
A7:BX |76

我想这应该更容易,因为 范围总是从 A 列开始,所以列数应该是 TXT_LastDataColumn 的等效列号,但我什至恐怕这超出了我稍微有限的 jQuery 知识。

任何帮助将不胜感激。

谢谢

【问题讨论】:

  • 你可以使用excel互操作吗?
  • @Rex 感谢您的回复,我希望在 jQuery/Javascript 中做一些简洁的事情,而不是使用任何库,例如 npoi 或 epplus。此外,将运行 Web 应用程序的服务器没有安装 office,所以我猜 interop 也不是一个选项。
  • 看看this 的例子。它在 Javascript 中。

标签: c# jquery asp.net excel


【解决方案1】:

我在 SO 上找到了一个对我有帮助的答案,链接如下:

Convert excel column alphabet (e.g. AA) to number (e.g., 25)

function letterToNumbers(string) {
    string = string.toUpperCase();
    var letters = 'ABCDEFGHIJKLMNOPQRSTUVWXYZ', sum = 0, i;
    for (i = 0; i < string.length; i++) {
        sum += Math.pow(letters.length, i) * (letters.indexOf(string.substr(((i + 1) * -1), 1)) + 1);
    }
    return sum;
}

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2015-01-16
    • 1970-01-01
    • 2022-01-22
    • 1970-01-01
    • 2017-05-16
    相关资源
    最近更新 更多