Как я могу получить Адрес ячейки от Excel

Как я могу получить Адрес ячейки от Excel, учитывая номер строки и номер столбца, например,

строка 2 и седло 3 должна возвратить C2... Помогите

8
задан Graham Clark 13 April 2010 в 10:11
поделиться

4 ответа

Я не большой пользователь VSTO C # - обычно я выбираю VBA. Однако следующая пара функций может быть вам полезна. Не уверен, что их можно еще упростить:

public string RangeAddress(Excel.Range rng)
{
    return rng.get_AddressLocal(false, false, Excel.XlReferenceStyle.xlA1,
           missing, missing);
}
public string CellAddress(Excel.Worksheet sht, int row, int col)
{
    return RangeAddress(sht.Cells[row, col]);
}

RangeAddress возьмет любой диапазон Excel и вернет вам адрес. Если вам нужен абсолютный стиль (со знаками доллара, например, $ C $ 3), вам нужно изменить первые два параметра вызова get_AddressLocal на true, true.

Чтобы получить адрес ячейки из пары строка / столбец, можно использовать CellAddress . Чтобы получить адрес, нужен лист. Однако вы можете поменять местами ActiveSheet (Excel.Worksheet) , если вы не хотите предоставлять лист (это может работать или не работать, в зависимости от того, что вы открыли в сеансе VSTO).

10
ответ дан 5 December 2019 в 15:21
поделиться

Ячейки (2, 3). Адрес

-1
ответ дан 5 December 2019 в 15:21
поделиться
public string GetCellAddress(int row, int col) {
        return (char)((int)'A' + (row - 1)) + col.ToString();
}
-2
ответ дан 5 December 2019 в 15:21
поделиться

Этот (непроверенный) также должен работать с адресами столбцов, превышающими 26:

using System.Text;

public string GetCellAddress(int row, int col) {
    StringBuilder sb = new StringBuilder();
    col--;
    do {
        sb.Insert(0, (char)('A' + (col % 26)));
        col /= 26;
    } while (col > 0);
    sb.Append(row);
    return sb.ToString();
}

Исправлено: адрес столбца был обратным

{{ 1}}
2
ответ дан 5 December 2019 в 15:21
поделиться
Другие вопросы по тегам:

Похожие вопросы: