使用 C++ 取消保护工作表
Contents
[
Hide
]
如果开发人员需要在运行时移除受保护的工作表的保护,以便对文件进行一些更改,可以轻松地使用 Aspose.Cells 实现。
取消保护工作表
使用Microsoft Excel
要取消工作表的保护:
在工具菜单中,选择 保护 然后选择 取消工作表保护。除非工作表设置了密码,否则保护将被移除。如果设置了密码,将出现对话框提示输入密码。输入密码后,工作表将被取消保护。
使用Aspose.Cells取消简单保护的工作表
可以通过调用 Worksheet 类的 Unprotect 方法来取消保护工作表。未设置密码的简单受保护工作表可以通过调用不带参数的 Unprotect 方法来取消保护。
#include <iostream>
#include "Aspose.Cells.h"
using namespace Aspose::Cells;
int main()
{
Aspose::Cells::Startup();
// Source directory path
U16String srcDir(u"..\\Data\\01_SourceDirectory\\");
// Output directory path
U16String outDir(u"..\\Data\\02_OutputDirectory\\");
// Path of input Excel file
U16String inputFilePath = srcDir + u"book1.xls";
// Path of output Excel file
U16String outputFilePath = outDir + u"output.xls";
// Create a Workbook object
Workbook workbook(inputFilePath);
// Access the first worksheet in the Excel file
Worksheet worksheet = workbook.GetWorksheets().Get(0);
// Unprotect the worksheet without a password
worksheet.Unprotect();
// Save the Workbook in Excel97-2003 format
workbook.Save(outputFilePath, SaveFormat::Excel97To2003);
std::cout << "Worksheet unprotected and workbook saved successfully!" << std::endl;
Aspose::Cells::Cleanup();
}
使用Aspose.Cells取消受密码保护的工作表
密码保护的工作表是用密码保护的工作表。可以通过调用 Unprotect 方法的重载版本(带密码参数)来取消保护此类工作表。
#include <iostream>
#include "Aspose.Cells.h"
using namespace Aspose::Cells;
int main()
{
Aspose::Cells::Startup();
// Source directory path
U16String srcDir(u"..\\Data\\01_SourceDirectory\\");
// Output directory path
U16String outDir(u"..\\Data\\02_OutputDirectory\\");
// Path of input Excel file
U16String inputFilePath = srcDir + u"book1.xls";
// Path of output Excel file
U16String outputFilePath = outDir + u"output.out.xls";
// Create workbook
Workbook workbook(inputFilePath);
// Accessing the first worksheet in the Excel file
Worksheet worksheet = workbook.GetWorksheets().Get(0);
// Unprotecting the worksheet with a password
worksheet.Unprotect(u"");
// Save Workbook
workbook.Save(outputFilePath);
std::cout << "Worksheet unprotected and saved successfully!" << std::endl;
Aspose::Cells::Cleanup();
}