@Peyton.Xu
aspose.cells还有个问题麻烦您一下。
我这有个excel文件,是由两个文件合并而成,被合并的两个文件里面的工作表个数、名称基本上一致。现在要把此文件转为pdf文件,并且自动添加pdf书签。书签编写要求:当工作表名中包含“封面”,则此书签为一级书签,之后的工作表为二级书签,直到碰到 工作表名包含”封面“,再改为一级书签,…如此操作。
我写了如下代码,第一个”封面“书签可实现一级书签,之后的一级书签不会实现,麻烦帮我看看是什么原因。我估计把PdfBookmarkEntry用法想得太简单了。
void ExcelToPdf(string path, string newFilePath) //生成文本格式的PDF文件
{
ArrayList lst = new ArrayList();
Aspose.Cells.Workbook excel = new Aspose.Cells.Workbook(path);
Worksheet sheet = excel.Worksheets[0];
Aspose.Cells.Rendering.PdfBookmarkEntry PdfBookmark = new Aspose.Cells.Rendering.PdfBookmarkEntry();
for (int i = 0; i < excel.Worksheets.Count-1; i++)
{
sheet = excel.Worksheets[i];
if (sheet.Name.Contains("封面")) //一级书签
{
// PdfBookmark = new Aspose.Cells.Rendering.PdfBookmarkEntry();
PdfBookmark.Destination = sheet.Cells["A1"];
PdfBookmark.Text = sheet.Cells["C7"].Value.ToString();
}
else //二级书签
{
Aspose.Cells.Rendering.PdfBookmarkEntry subPdfBookmark = new Aspose.Cells.Rendering.PdfBookmarkEntry();
subPdfBookmark.Destination = sheet.Cells["A1"];
subPdfBookmark.Text = sheet.Cells["A1"].Value.ToString();
lst.Add(subPdfBookmark);
}
}
PdfBookmark.SubEntry = lst;
PdfSaveOptions opts = new PdfSaveOptions();
opts.Bookmark = PdfBookmark;
excel.Save(newFilePath, opts);
}
报价合并文件(包).zip (30.7 KB)