Aspose-Cells:工作表上的自动过滤器,有超过26列

时间:2014-08-14 08:13:02

标签: vb.net excel aspose aspose-cells

我在这里有种约束力。我需要在工作表上设置自动过滤器。为此,我通常使用以下代码:

此处Columncount是列数visible

Dim alphabet As String = "abcdefghijklmnopqrstuvwxyz"
myDatasheet.AutoFilter.Range = (String.Format("A1:{0}1", alphabet.Substring(columnCount - 1, 1)))

直到26列(这是正常的,因为字母表长26个字母)。但突然间我有29列(Columncount = 29)。这会导致argumentoutofrangeexception

问题:我知道如何修改代码以便在26列或更多列上进行操作?

注意:我主要在aspose网站上进行了我的研究,但是在超过26列的情况下没有找到任何信息或示例

AutoFilter Class: Aspose.cells

Aspose: Autofilter data

Aspose-Cells: Data Filtering

1 个答案:

答案 0 :(得分:1)

实际上,我不应该在这里发帖,而应该更多地考虑这一点。事实上,解决方案使用MOD计算非常简单:

Dim alphabet As String = "abcdefghijklmnopqrstuvwxyz"
Dim lastString As String = String.Empty

Dim isDoubledletters As Boolean = (CInt(columnCount / alphabet.Length) > 0)
If Not (isDoubledletters) Then
     myDatasheet.AutoFilter.Range = (String.Format("A1:{0}1", alphabet.Substring(columnCount - 1, 1)))
Else
     Dim myEndFilter As String = alphabet.ToCharArray()(CInt(columnCount / alphabet.Length) - 1).ToString &
     alphabet.ToCharArray()(CInt(columnCount Mod alphabet.Length) - 1).ToString
                myDatasheet.AutoFilter.Range = (String.Format("A1:{0}1", myEndFilter))
End If

希望这对未来的任何人都有用处