我在C#中使用这个库。我在[LetterNumber]表单中输入了坐标。但后来我必须使用迭代器。因此,我需要在[Number,Number]系统中对它们进行转换。
Eg. B5--->2,5 and back
然后回来。 对于靠近原点的细胞可能很简单,但对于像AB23这样的细胞则更复杂。还有什么可能是A23或AB23,所以很难说。 我无法相信没有内置任何东西。 我知道使用行,列很容易。这个难题是另一个坐标系的输入。 谢谢
答案 0 :(得分: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"
你可以做很多方法。