8

我正在生成一个 excel 模板,我正在使用 4 张工作表,其中 3 张只是用于存储数组中的数据。这些数据正在数据验证列表中使用,因此我为仅用于存储数据的 3 张工作表添加了保护,但我想知道是否可以隐藏它们,以便用户在下载模板时,将无法看到这些他不需要知道存在的床单。

可能吗?

4

1 回答 1

12
$objPHPExcel->getSheetByName('Worksheet 1')
    ->setSheetState(PHPExcel_Worksheet::SHEETSTATE_HIDDEN);

或者

$objPHPExcel->getSheetByName('Worksheet 1')
    ->setSheetState(PHPExcel_Worksheet::SHEETSTATE_VERYHIDDEN);

编辑

您可以使用 Excel 的格式/工作表/隐藏来隐藏整个工作表。这会将工作表的可见属性设置为 xlSheetHidden。但除非您使用密码保护工作簿结构,否则任何人都可以选择格式/工作表/取消隐藏来查看隐藏的工作表。

如果您使用 Excel 97 或更高版本,则可以“非常隐藏”工作表:

  • 按 Alt-F11 显示 Visual Basic 编辑器
  • 在项目窗口中,双击 Microsoft Excel 对象并选择要隐藏的工作表。
  • 按 F4 显示属性框
  • 将工作表的 Visible 属性设置为 xlSheetVeryHidden。

现在该工作表不再可以通过“格式/工作表/取消隐藏”访问

当您将 SheetState 设置为 VERYHIDDEN 时,这就是 PHPExcel 所做的更简单的事情

于 2012-08-21T16:02:39.267 回答