2017-04-04 52 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; 
}