2016-11-25 12 views
1

Я использую эту библиотеку с C#. У меня есть входные координаты в форме [LetterNumber]. Но тогда я должен работать с итераторами. Поэтому мне нужно было бы преобразовать их в систему [Number, Number].Преобразуйте адресный стиль ссылки A1 в стиль R1C1 в EPPlus

Eg. B5--->2,5 and back 

и сзади. Это может быть просто для клеток вблизи источника, но более сложным для таких клеток, как AB23. Более того, это может быть A23 или AB23, поэтому трудно сказать. Не могу поверить, что ничего не встроено. Я знаю, что легко работать с строкой, колонкой. Эта головоломка приходит в качестве входа в другую систему координат. Спасибо

ответ

1

Я думаю, что ближе всего вы получите что-то построен в являются статические методы в ExcelCellBase так:

Console.WriteLine(ExcelCellBase.TranslateToR1C1("AB23", 0, 0)); //Prints "R[23]C[28]" 
Console.WriteLine(ExcelCellBase.TranslateFromR1C1("R23C28", 0, 0)); //Prints "$AB$23" 

Но если вы предпочитаете более простой вывод, который вы могли бы отчасти подделка это так:

var addr = new ExcelAddress("AB23"); 
Console.WriteLine($"{addr.Start.Row},{addr.Start.Column}"); //Prints "23,28" 

addr = new ExcelAddress(23, 28, 23, 28); 
Console.WriteLine(addr.Address); //Prints "AB23" 

Но если вы хотите перебрать в диапазоне говорят, что вы можете сделать что-то вроде этого:

addr = new ExcelAddress("A10:AB23"); 
var s = addr.Start; 
var e = addr.End; 
Console.WriteLine($"Rows={e.Row - s.Row} Cols={e.Column - s.Column}"); //Prints "Rows=13 Cols=27" 

Много способов, которыми вы можете это сделать.

Смежные вопросы