我需要一个算法将Excel列字母转换为正确的数字.
这将编写的语言是C#,但任何会做甚至伪代码.
请注意我将把它放在C#中,我不想使用office dll.
对于'A',预期结果将为1
因为'AH'= 34
对于'XFD'= 16384
什么是最快的c#函数,它接受并返回包含一个或多个字母的字符串,以便在Excel函数中使用?例如,1返回"A",26返回"Z",27返回"AA"等.
这被称为成千上万次,并且需要25%的时间来生成具有许多公式的大型电子表格.
public string Letter(int intCol) {
int intFirstLetter = ((intCol) / 676) + 64;
int intSecondLetter = ((intCol % 676) / 26) + 64;
int intThirdLetter = (intCol % 26) + 65;
char FirstLetter = (intFirstLetter > 64) ? (char)intFirstLetter : ' ';
char SecondLetter = (intSecondLetter > 64) ? (char)intSecondLetter : ' ';
char ThirdLetter = (char)intThirdLetter;
return string.Concat(FirstLetter, SecondLetter, ThirdLetter).Trim();
}
Run Code Online (Sandbox Code Playgroud) 您如何确定Excel中第n列的列名(例如"AQ"或"BH")?
编辑:一种语言无关的算法,以确定这是这里的主要目标.
我试图使用Interop Library从excel文件中删除所有额外的空白行和列.
我按照这个问题使用Interop从Excel文件中删除空行和列的最快方法,我发现它很有帮助.
但我有excel文件包含一小组数据,但有很多空行和列(从最后一个非空行(或列)到工作表的末尾)
我尝试在Rows和Columns上循环,但是循环需要几个小时.
我试图得到最后一个非空的行和列索引,所以我可以删除一行中的整个空范围
XlWks.Range("...").EntireRow.Delete(xlShiftUp)
Run Code Online (Sandbox Code Playgroud)
注意:我正在尝试获取包含数据的最后一行以删除所有额外的空格(在此行或列之后)
有什么建议?
我有很多包含数据的excel文件,它包含空行和空列.如下所示
我试图使用互操作从excel中删除空行和列.我创建一个简单的winform应用程序并使用以下代码,它工作正常.
Dim lstFiles As New List(Of String)
lstFiles.AddRange(IO.Directory.GetFiles(m_strFolderPath, "*.xls", IO.SearchOption.AllDirectories))
Dim m_XlApp = New Excel.Application
Dim m_xlWrkbs As Excel.Workbooks = m_XlApp.Workbooks
Dim m_xlWrkb As Excel.Workbook
For Each strFile As String In lstFiles
m_xlWrkb = m_xlWrkbs.Open(strFile)
Dim m_XlWrkSheet As Excel.Worksheet = m_xlWrkb.Worksheets(1)
Dim intRow As Integer = 1
While intRow <= m_XlWrkSheet.UsedRange.Rows.Count
If m_XlApp.WorksheetFunction.CountA(m_XlWrkSheet.Cells(intRow, 1).EntireRow) = 0 Then
m_XlWrkSheet.Cells(intRow, 1).EntireRow.Delete(Excel.XlDeleteShiftDirection.xlShiftUp)
Else
intRow += 1
End If
End While
Dim intCol As Integer = 1
While intCol <= m_XlWrkSheet.UsedRange.Columns.Count
If m_XlApp.WorksheetFunction.CountA(m_XlWrkSheet.Cells(1, …Run Code Online (Sandbox Code Playgroud) 我正在寻找与此问答相反的方法:将excel或电子表格列字母转换为Pythonic方式的数字.
或者这个但是在python中如何将列号(例如127)转换为excel列(例如AA)
在我的网格中,列标题A,B,C...,AA,AB,AC,...像excel电子表格一样被命名.如何将字符串转换为数字,如:A => 1, B => 2, AA => 27
0 = A
1 = B
...
25 = Z
26 = AA
27 = AB
...
701 = ZZ
702 = AAA
Run Code Online (Sandbox Code Playgroud)
我想不出任何不涉及loop-bruteforce的解决方案:-(
我期待一个函数/程序,它接受一个十进制数并返回一个字符串作为结果.
excel ×7
c# ×5
vb.net ×2
algorithm ×1
code-golf ×1
etl ×1
excel-vba ×1
javascript ×1
math ×1
optimization ×1
performance ×1
python ×1
ssis ×1
vba ×1