2017-04-04 51 views
0

我有一个C#网络形式,其中大约一个excel用户输入数据文件转换成若干文本框,包括:jQuery的计算从Excel范围列计数

  • TXT_FirstDataRow - 整数字段,它表示的第一行包含数据
  • TXT_LastDataColumn - 这表示包含数据
  • 的最后一列的字符串字段
  • TXT_Range - 包含所计算出的数据的范围内使用上述两个字段
  • 字符串字段- 低于该列的计算的范围我目前使用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知识。

任何帮助将不胜感激。

感谢

+0

你允许使用Excel互操作? – Rex

+0

@Rex感谢您的回复,我希望在jQuery/Javascript中做一些整洁的事情,而不是使用任何库,如npoi或epplus。此外,Web应用程序将运行的服务器没有安装办公室,所以我猜测互操作也不是一个选项。 –

+0

看看[this](https://github.com/OfficeDev/office-js-docs/blob/master/reference/excel/range.md)的例子。它在Javascript中。 – Rex

回答

0

我发现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; 
}