[]
        
(Showing Draft Content)

导入和导出.sjs文件

SpreadJS v16引入了一种新的文件格式.sjs,可以更快地处理大型复杂文件,并在保存时生成更小(尺寸更小)的文件。新的.sjs格式是一个压缩文件,其中包含多个较小的JSON文件,并且结构类似于Excel XML结构。

GcExcel Java允许您像XLSX、CSV和其他文件格式一样导入和导出新的.sjs文件格式。您可以使用Workbook类的open方法导入.sjs文件。一旦在GcExcel中加载,可以使用Workbook类的save方法将其导出为Excel(XLSX)或.sjs文件。在加载或保存.sjs文件时,可以在OpenFileFormatSaveFileFormat枚举中使用新选项"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还提供了SjsOpenOptionsSjsSaveOptions类,用于自定义.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();        
}