我需要一个算法将Excel列字母转换为正确的数字.
这将编写的语言是C#,但任何会做甚至伪代码.
请注意我将把它放在C#中,我不想使用office dll.
对于'A',预期结果将为1
因为'AH'= 34
对于'XFD'= 16384
我正在接近以Excel OpenXML格式(xlsx)导出大量数据(115.000行x 30列).我正在使用一些像DocumentFormat.OpenXML,ClosedXML,NPOI这样的库.
每次抛出OutOfMemoryException都会抛出,因为内存中表单的表示会导致指数内存增加.
每1000个关闭文档文件(并释放内存),下一次加载会导致内存增加.
是否有更高效的方式在xlsx中导出数据而不占用大量内存?
根据OpenXml规范,CellReference是可选的.但是有没有另一种方法可以获得一个小区的位置?
例如,我可以通过以下方式获取行的单元格:
foreach (Row r in sheetData.Elements<Row>())
{
foreach (Cell c in r.Elements<Cell>())
{
Console.WriteLine(c.CellReference);
}
}
Run Code Online (Sandbox Code Playgroud)
但是如果没有CellReference,我如何知道细胞的位置?
我做了一些研究,所有解决方案似乎都依赖于将单元格的CellReference与给定的字符串进行比较.