C# 将PDF中记录列表的索引显示为AA、AB、AC等

C# 将PDF中记录列表的索引显示为AA、AB、AC等,c#,itext,C#,Itext,我想将序列显示为AA、AB、AC等 这个序列应该使用ItextSharp库逐行应用于PDF行,值来自SQL DB 序列表--> 第一条记录AA 第二记录AB 第三条记录AC ... 等等 我有代码生成序列的AA,AB,AC。。。。以此类推,但现有代码有许多表,其中有一定数量的行,因此,如果第一个表有5行,则序列应用于5行,如AA、AB、AC、AD、AE,循环结束于表1,当表2循环开始时,序列不是从AF开始,而是作为新表,并且再次重复序列,从AA、AB开始,AC,依此类推,对于下一个表,顺序再次从

我想将序列显示为AA、AB、AC等

这个序列应该使用ItextSharp库逐行应用于PDF行,值来自SQL DB

序列表--> 第一条记录AA
第二记录AB
第三条记录AC
... 等等

我有代码生成序列的AA,AB,AC。。。。以此类推,但现有代码有许多表,其中有一定数量的行,因此,如果第一个表有5行,则序列应用于5行,如AA、AB、AC、AD、AE,循环结束于表1,当表2循环开始时,序列不是从AF开始,而是作为新表,并且再次重复序列,从AA、AB开始,AC,依此类推,对于下一个表,顺序再次从AA、AB、AC开始。。。。, 使用循环获取数据的项目现有代码将应用于数据库中的PDF,只要新表来自DB new sequence开始

我无法解决这个问题,请有人帮我解决这个问题

字符串索引=”

PdfPTable table=新的PdfPTable(columnWidth.Count()){TotalWidth=表格宽度,LockedWidth=true}

index=GetIndex(table.Size)

私有静态字符串mColumnLetters=“zabcdefghijklmnopqrstuvxyz”

公共静态字符串GetIndex(int-ColumnIndex)
{             
int ModOf26,减法;
StringBuilder NumberInLetters=新StringBuilder();
柱状指数+=26;
而(列索引>0)
{
如果(ColumnIndex),请帮助我让程序显示AA、AB、AC等,而不显示任何拆分。
Getindex(Table.Size)=>这里是输入参数,我想应该是Table.Size,如果我必须克服拆分和重复的seq生成,我应该传递哪个输入


==>有谁能帮我在这方面花点时间吗

你的
GetIndex
方法返回,从1开始增加

1:A
2:B

26:Z
27:AA

52:AZ
53:BA

因此,如果您确保以27开头表示
,则可以保持该方法不变

我不确定您为什么对表拆分有问题。您应该只将内容添加到单个表中,而不考虑拆分。iText将负责拆分

Document doc=新文档();
Stream outfile=new FileStream(“SO66781099.pdf”,FileMode.Create);
PdfWriter w=PdfWriter.GetInstance(doc,outfile);
doc.Open();
PdfPTable table=新的PdfPTable(1);
对于(int i=1;i<100;i++)
{
//对GetIndex的第一个调用是27
PdfPCell=新的PdfPCell(新短语(GetIndex(i+26));
cell.FixedHeight=50;
表2.AddCell(cell);
}
单据新增(表);
doc.Close();
第1页末尾,第2页开头:


您好,欢迎来到SO!请阅读以改进您的问题并帮助我们了解您的问题。请标记您正在使用的特定库。我猜是iTextSharp?您好,SRK,是的,我正在使用iTextSharp库,请帮助我使用该程序。上述程序正在运行,但它从A、B、C到Z和在AA,AB,AC…等等之后,但我需要从AA,AB,AC,AD…等等开始序列,而不需要任何拆分。@srk,你能帮我处理代码吗。@Zeb我想这就是你需要的。嗨,rhens,这里的问题是我作为(table.size)传递的GetInx方法和reuiqred输入参数。因此,从数据库中获取的值与许多表的某些条件有关,需要拆分,然后重新排序。您必须更清楚地解释您试图实现的目标。也许可以编辑问题,以包含预期输出的示例。好的,有一些pdf生成代码与itextsharp一起使用。这些值来自包含在7个类别中,对于一个类别,大约有52条记录,例如1号列车52条记录,因此序列从AA开始,最多52条记录,在2号列车有100条记录后,这里不是从53条开始,它被视为新表,再次从AA开始,最多52条记录,请检查我的问题ave用新代码编辑了一些文本,这些新代码与seq一起工作,但拆分也无法用我新添加的代码来克服。因此,对于上面评论中的示例:对于第1列,您希望有一个包含52行的表,标记为从
AA
BZ
。对吗?然后,对于第2列,您需要一个包含100行的新表,标记为e> CA
FV
。如果这是期望值,为什么不为行保留一个运行的计数器,并将其用作
GetIndex
方法的参数?在表1的末尾,该计数器将是52。然后,它将转到53,在表2的开头。
    public static string GetIndex(int ColumnIndex)
    {             
        int ModOf26, Subtract;
        StringBuilder NumberInLetters = new StringBuilder();
        ColumnIndex += 26;
        while (ColumnIndex > 0)
        {
            if (ColumnIndex <= 26)
            {
                ModOf26 = ColumnIndex;
                NumberInLetters.Insert(0, mColumnLetters.Substring(ModOf26, 1));
                ColumnIndex = 0;
            }
            else
            {
                ModOf26 = ColumnIndex % 26;
                Subtract = (ModOf26 == 0) ? 26 : ModOf26;
                ColumnIndex = (ColumnIndex - Subtract) / 26;
                NumberInLetters.Insert(0, mColumnLetters.Substring(ModOf26, 1));
            }
        }
        return NumberInLetters.ToString().ToUpper();
    }