[]
SpreadJS v16引入了一种新的文件格式.sjs,可以更快地处理大型复杂文件,并在保存时生成更小(尺寸更小)的文件。新的.sjs格式是一个压缩文件,其中包含多个较小的JSON文件,并且结构类似于Excel XML结构。
GcExcel Java允许您像XLSX、CSV和其他文件格式一样导入和导出新的.sjs文件格式。您可以使用Workbook类的open方法导入.sjs文件。一旦在GcExcel中加载,可以使用Workbook类的save方法将其导出为Excel(XLSX)或.sjs文件。在加载或保存.sjs文件时,可以在OpenFileFormat和SaveFileFormat枚举中使用新选项"Sjs"。
请参考以下示例代码从文件名导入和导出.sjs文件:
// 初始化Workbook对象。
Workbook workbook = new Workbook();
// 打开.sjs文件。
workbook.open("ProjectPlan.sjs", OpenFileFormat.Sjs);
// 保存.sjs文件。
workbook.save("SaveProjectPlan.sjs", SaveFileFormat.Sjs);
请参考以下示例代码,从文件流中导入和导出.sjs文件:
// 创建一个新的Workbook对象。
var streamworkbook = new Workbook();
// 创建一个新的文件流来打开文件。
InputStream openFile;
try {
openFile = new FileInputStream("ProjectPlan.sjs");
// 打开.sjs文件。
streamworkbook.open(openFile, OpenFileFormat.Sjs);
} catch (FileNotFoundException e1) {
// 处理文件未找到异常。
e1.printStackTrace();
}
// 创建一个新的文件流来保存文件。
OutputStream out;
try {
out = new FileOutputStream("SaveProjectPlan.sjs");
// 将Workbook对象保存为.sjs文件。
streamworkbook.save(out, SaveFileFormat.Sjs);
} catch (FileNotFoundException e) {
// 处理文件未找到异常。
e.printStackTrace();
}
此外,GcExcel还提供了SjsOpenOptions和SjsSaveOptions类,用于自定义.sjs文件的导入和导出。这些选项在处理大型文件时特别有用,比如包含许多公式、样式或未使用名称的文件。以下是这些选项:
Class | Options | Description | |
---|---|---|---|
导入选项 | SjsOpenOptions | IncludeStyles | 指示在加载 .sjs 文件时是否包含样式。默认值为 true。 |
IncludeFormulas | 指示在加载 .sjs 文件时是否包含公式。默认值为 true。 | ||
导出选项 | SjsSaveOptions | IncludeStyles | 指示在保存文件时是否包含样式。默认值为 true。 |
IncludeFormulas | 指示在保存文件时是否包含公式。默认值为 true。 | ||
IncludeUnusedNames | 指示在保存文件时是否包含未使用的自定义名称。默认值为 true。 | ||
IncludeEmptyRegionCells | 指示在保存文件时是否包含数据范围之外的任何空白单元格。默认值为 true。 |
请参考以下示例代码,使用 SjsOpenOptions 和 SjsSaveOptions 导入和导出 .sjs 文件:
// 初始化工作簿。
Workbook workbook = new Workbook();
// 打开一个 .sjs 文件并保留公式。
SjsOpenOptions openOptions = new SjsOpenOptions();
openOptions.setIncludeFormulas(false);
openOptions.setIncludeStyles(false);
workbook.open("ProjectPlan.sjs", openOptions);
// 保存 .sjs 文件不包含样式。
SjsSaveOptions saveOptions = new SjsSaveOptions();
saveOptions.setIncludeStyles(false);
saveOptions.setIncludeFormulas(true);
saveOptions.setIncludeUnusedNames(false);
saveOptions.setIncludeEmptyRegionCells(false);
workbook.save("SaveProjectPlan.sjs", saveOptions);
GcExcel 还提供了 toSjsJson 方法,该方法可以将 .sjs 文件中的所有 JSON 文件集成到单个字符串或流中。您也可以在这个方法中使用 SjsSaveOptions。
Class | Methods | Description |
---|---|---|
Workbook | toSjsJson() | 从工作簿生成一个 JSON 字符串。它将 .sjs 文件中的所有 JSON 文件集成到一个字符串中。 |
toSjsJson(SjsSaveOptions options) | 使用保存选项从工作簿生成一个 JSON 字符串。它将 .sjs 文件中的所有 JSON 文件集成到一个字符串中。 | |
toSjsJson(Stream stream) | 将 .sjs 文件中的所有 JSON 文件集成到一个字符串中,并将该字符串放入流中。 | |
toSjsJson(Stream stream, SjsSaveOptions options) | 使用保存选项将 .sjs 文件中的所有 JSON 文件集成到一个字符串中,并将该字符串放入流中。 |
请参考以下示例代码,将一个 .sjs 文件导出为一个单独的字符串,并将该字符串保存到流中:
// 初始化 Workbook 对象。
Workbook workbook = new Workbook();
// 打开 .sjs 文件。
workbook.open("ProjectPlan.sjs", OpenFileFormat.Sjs);
// 为 .sjs 文件生成 JSON 字符串并保存到流中。
OutputStream out;
try {
out = new FileOutputStream("SaveProjectPlan.json");
// 将工作簿保存为 xltx 文件。
workbook.toSjsJson(out);
} catch (FileNotFoundException e) {
// 处理文件找不到异常
e.printStackTrace();
}