首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Aspose-Cells:工作表上的自动筛选器,列超过26列

Aspose-Cells:工作表上的自动筛选器,列超过26列
EN

Stack Overflow用户
提问于 2014-08-14 08:13:01
回答 1查看 381关注 0票数 0

我在这有点麻烦。我需要在工作表上设置一个自动过滤器。为此,我通常使用以下代码:

这里Columncountvisible列的数目

代码语言:javascript
复制
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列或更多列上工作吗?

注:我的研究主要集中在网站上,但在超过26列的情况下没有发现任何信息或例子。

AutoFilter类: Aspose.cells

自动过滤数据

Aspose-Cells:数据过滤

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2014-08-14 09:24:49

实际上,我不应该在这里发帖,我应该更仔细地考虑这个问题。实际上,使用MOD的解决方案相当简单--计算:

代码语言:javascript
复制
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

希望这对将来的任何人都有帮助。

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/25303142

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档