gpt4 book ai didi

java - 为什么 Excel 将单元格视为 protected ,即使它们不是?

转载 作者:行者123 更新时间:2023-11-30 10:35:27 24 4
gpt4 key购买 nike

我提供了保护并隐藏了工作表“MasterData”,我从中创建了一些我在第二张工作表“customerAssets”中使用的命名范围。这是代码片段:

    workbook.setSheetHidden(0,  true);  //to hides masterData
workbook.setActiveSheet(1); // sets active sheet as Customer Assets Sheet
masterDataSheet.protectSheet("12345"); // protect MasterData sheet

但是打开excel后: enter image description here

  1. 它不允许编辑“客户 Assets ”表,说明其 protected 。
  2. 但如果我打开“Sheet1”,然后打开“Customer Assets”,它允许编辑。

它可能出了什么问题?

最佳答案

Excel 或 Calc 中的工作表可以同时处于 Activity 状态( View 中您面前的工作表)和选定状态(可以将多个工作表作为一组选择)。

第一个创建的工作表将始终处于 Activity 状态并被选中。因此,如果您的 MasterData 工作表是第一个创建的工作表,则它处于 Activity 状态并被选中。 workbook.setActiveSheet 更改 Activity 状态但不更改选定状态。因此您的 MasterData 工作表保持选中状态。 Activity 单元格中的更改将始终应用于所有选定的工作表。因此,您确实尝试更改 protected 单元格,因为还选择了 protected MasterData 工作表。

如果您用鼠标单击选择单个工作表,则选择将更改并且不再选择所选的工作表组。

我们至少需要取消选择主数据表。但我们也应该选择另一张纸。

import java.io.*;

import org.apache.poi.ss.usermodel.*;
import org.apache.poi.xssf.usermodel.*;

public class CreateSheets {

public static void main(String[] args) throws Exception {
Workbook workbook = new XSSFWorkbook();
Sheet masterDataSheet = workbook.createSheet("MasterData"); //first sheeet will be both active and selected
Sheet customerAssetsSheet = workbook.createSheet("Customer Assets");
Sheet sheet1 = workbook.createSheet("Sheet1");

workbook.setSheetHidden(0, true); //hide masterDataSheet
masterDataSheet.setSelected(false); //unselect masterDataSheet

workbook.setActiveSheet(1); //sets active sheet as Customer Assets Sheet
//customerAssetsSheet.setSelected(true); //not necessary but recommended: set Customer Assets Sheet selected

masterDataSheet.protectSheet("12345"); // protect MasterData sheet

FileOutputStream fileOut = new FileOutputStream("CreateSheets.xlsx");
workbook.write(fileOut);
fileOut.close();
workbook.close();
}
}

关于java - 为什么 Excel 将单元格视为 protected ,即使它们不是?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/41121676/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com