[]
        
立即试用
(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允许您在将 .sjs 文件导出为PDF或图像时,使用 WorkbookOptions 类的 setPixelBasedColumnWidth 方法基于像素而不是字符来渲染列宽。

参照以下示例代码,了解在导出为PDF或图像时如何基于像素渲染列宽:

// Initialize WorkbookOptions.
WorkbookOptions workbookOptions = new WorkbookOptions();

// Enable pixel-based column width for the workbook.
workbookOptions.setPixelBasedColumnWidth(true);
var workbook = new Workbook(workbookOptions);

// Open SSJSON file.
workbook.open("Event budget.sjs");
IWorksheet worksheet = workbook.getWorksheets().get(0);

// Save to a PDF and PNG file.
workbook.save("SavePDFWithPixelBasedColumnWidth.pdf");
worksheet.toImage("SavePDFWithPixelBasedColumnWidth.png");