You need to enable JavaScript to run this app.
最新活动
大模型
产品
解决方案
定价
生态与合作
支持与服务
开发者
了解我们

如何使用GemBox.Spreadsheet将Excel转换为带有工作表名称书签的PDF

实现Excel工作表名称作为PDF书签的方案

嘿,这个需求很常见,用GemBox.Spreadsheet完全可以轻松实现!你只需要在现有代码基础上,添加几行代码来手动为每个工作表创建对应的书签即可。下面是完整的实现代码:

var workbook = ExcelFile.Load("file.xlsx");
var options = new PdfSaveOptions() 
{ 
    SelectionType = SelectionType.EntireFile,
    GenerateBookmarks = true // 务必开启书签生成功能
};

// 遍历每个工作表,创建对应名称的书签
foreach (var worksheet in workbook.Worksheets)
{
    // 跳过隐藏的工作表(可选,根据你的需求调整)
    if (worksheet.VisibilityState != WorksheetVisibilityState.Visible)
        continue;

    // 创建以工作表名称为标题的书签
    var worksheetBookmark = new PdfBookmark(worksheet.Name);
    // 设置书签跳转至该工作表的起始位置(A1单元格)
    worksheetBookmark.Range = new PdfBookmarkRange(worksheet.Name, 0, 0);
    options.Bookmarks.Add(worksheetBookmark);
}

workbook.Save("file.pdf", options);

关键代码说明:

  • GenerateBookmarks = true:这是开启PDF书签功能的核心开关,如果不设置这个属性,即使添加了书签也不会在PDF中显示。
  • 遍历工作表创建书签:通过foreach循环遍历工作簿里的每个工作表,为每个可见工作表创建一个PdfBookmark对象,直接用worksheet.Name作为书签的显示标题。
  • 设置书签跳转位置PdfBookmarkRange用来指定书签点击后跳转的位置,这里我们设置为对应工作表的A1单元格(行号0、列号0),确保用户点击书签能直接定位到工作表开头。
  • 跳过隐藏工作表:这段是可选的,如果你的Excel里有隐藏的工作表,不需要为它们生成书签的话,就加上这个判断逻辑。

这样生成的PDF文件里,左侧书签栏就会显示每个Excel工作表的名称,点击就能快速跳转到对应工作表的内容啦!

内容的提问来源于stack exchange,提问作者bellpatricia

火山引擎 最新活动