Apache POI - Excel - 文件->密码->"Read-only recommended"(如何禁用)
Apache POI - Excel - File->Passwords->"Read-only recommended" (How to disable)
我有几个设置了“推荐只读”标志的 xlsx 文件。
- 是否有 POI 5.x 方法可用于禁用此复选框?
我浏览了 POI XML Properties 没有运气。
在 Office Open XML
-Excel 文件中,“只读推荐”设置作为 fileSharing
XML-element 中的一个属性存储在 /xl/workbook.xml
中。 =20=]
...
<fileSharing readOnlyRecommended="1"/>
...
仅使用低级别 org.openxmlformats.schemas.spreadsheetml.x2006.main.*
-类.
可以使用 apache poi
设置或取消设置
完整示例:
import org.apache.poi.ss.usermodel.*;
import org.apache.poi.xssf.usermodel.*;
import org.openxmlformats.schemas.spreadsheetml.x2006.main.*;
import java.io.*;
class ExcelRemoveReadOnlyRecommended {
static void removeReadOnlyRecommended(XSSFWorkbook workbook) {
CTWorkbook ctWorkbook = workbook.getCTWorkbook();
CTFileSharing ctfilesharing = ctWorkbook.getFileSharing();
if (ctfilesharing != null) {
ctfilesharing.setReadOnlyRecommended(false);
}
}
public static void main(String[] args) throws Exception {
String sourceFilePath = "./sourceFile.xlsx";
String resultFilePath = "./resultFile.xlsx";
Workbook workbook = WorkbookFactory.create(new FileInputStream(sourceFilePath));
if (workbook instanceof XSSFWorkbook) {
removeReadOnlyRecommended((XSSFWorkbook)workbook);
}
OutputStream out = new FileOutputStream(resultFilePath);
workbook.write(out);
out.close();
workbook.close();
}
}
如果 sourceFile.xlsx
已设置该选项,但没有密码,则在 运行 代码之后 resultFile.xlsx
不再设置该选项。
如果也设置了密码,则需要先解密,然后fileSharing
中的密码也需要取消。当然,至少 decryption-password 需要知道。
我有几个设置了“推荐只读”标志的 xlsx 文件。
- 是否有 POI 5.x 方法可用于禁用此复选框?
我浏览了 POI XML Properties 没有运气。
在 Office Open XML
-Excel 文件中,“只读推荐”设置作为 fileSharing
XML-element 中的一个属性存储在 /xl/workbook.xml
中。 =20=]
...
<fileSharing readOnlyRecommended="1"/>
...
仅使用低级别 org.openxmlformats.schemas.spreadsheetml.x2006.main.*
-类.
apache poi
设置或取消设置
完整示例:
import org.apache.poi.ss.usermodel.*;
import org.apache.poi.xssf.usermodel.*;
import org.openxmlformats.schemas.spreadsheetml.x2006.main.*;
import java.io.*;
class ExcelRemoveReadOnlyRecommended {
static void removeReadOnlyRecommended(XSSFWorkbook workbook) {
CTWorkbook ctWorkbook = workbook.getCTWorkbook();
CTFileSharing ctfilesharing = ctWorkbook.getFileSharing();
if (ctfilesharing != null) {
ctfilesharing.setReadOnlyRecommended(false);
}
}
public static void main(String[] args) throws Exception {
String sourceFilePath = "./sourceFile.xlsx";
String resultFilePath = "./resultFile.xlsx";
Workbook workbook = WorkbookFactory.create(new FileInputStream(sourceFilePath));
if (workbook instanceof XSSFWorkbook) {
removeReadOnlyRecommended((XSSFWorkbook)workbook);
}
OutputStream out = new FileOutputStream(resultFilePath);
workbook.write(out);
out.close();
workbook.close();
}
}
如果 sourceFile.xlsx
已设置该选项,但没有密码,则在 运行 代码之后 resultFile.xlsx
不再设置该选项。
如果也设置了密码,则需要先解密,然后fileSharing
中的密码也需要取消。当然,至少 decryption-password 需要知道。