[]
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允许您在将 .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");