[]
        
立即试用
(Showing Draft Content)

工作簿和工作表设置

本文介绍了在与SpreadJS进行IO操作时,GcExcel在工作簿和工作表级别与SJS及SSJSON格式的交互功能。

基于像素的列宽

当将.sjs文件或SSJSON文件导出为PDF或图像时,GcExcel允许通过 WorkbookOptions 类的 setPixelBasedColumnWidth 方法,以像素而非字符为单位来渲染列宽。

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

// 初始化WorkbookOptions
WorkbookOptions workbookOptions = new WorkbookOptions();

// 为工作簿启用基于像素的列宽
workbookOptions.setPixelBasedColumnWidth(true);
Workbook workbook = new Workbook(workbookOptions);

// 打开SSJSON文件
workbook.open("Event budget.sjs");

// 导入.ssjson文件时取消注释以下代码
//workbook.open("Event budget.ssjson");    

IWorksheet worksheet = workbook.getWorksheets().get(0);

// 保存为PDF和PNG文件
workbook.save("SavePDFWithPixelBasedColumnWidth.pdf");
worksheet.toImage("SavePDFWithPixelBasedColumnWidth.png");

设置标签栏位置

在执行JSON IO操作时,GcExcel允许设置标签栏的各种属性,如位置、宽度、显示新建标签按钮、是否允许编辑工作表名称等。IWorkbookView 接口提供了诸如 setTabNavigationVisiblesetNewTabVisiblesetAllowSheetReordersetTabStripWidthsetTabStripPosition 等方法。

参考以下示例代码,将标签栏位置设置为左侧并配置其他标签栏属性:

// 创建一个新工作簿
Workbook workbook = new Workbook();
workbook.getWorksheets().add();

workbook.getBookView().setAllowSheetReorder(false);
workbook.getBookView().setTabEditable(false);
workbook.getBookView().setTabNavigationVisible(false);
workbook.getBookView().setTabStripPosition(SpreadJSTabStripPosition.Left);
workbook.getBookView().setTabStripWidth(150);
workbook.getBookView().setNewTabVisible(false);

try {
    workbook.toJson(new FileOutputStream("sheettabposition.json"));
} catch (FileNotFoundException e1) {
    e1.printStackTrace();
}

工作表标签

GcExcel支持获取有关SpreadJS工作表标签的信息,包括表格工作表(TableSheets)、甘特图工作表(GanttSheets)和报表工作表(ReportSheets)的数量、名称、类型和索引等详细信息。您可以从这里下载包含工作表标签信息的JSON文件。

sheettabs.sjs

GcExcel提供了 IWorkbook 接口的 getSheetTabs 属性,方便您获取所有工作表标签的信息。

参考以下代码获取工作簿中所有工作表标签的数量、名称、类型和索引:

// 创建一个新工作簿
Workbook workbook = new Workbook();

// 打开JSON文件
workbook.open("sheettabs.sjs");        
ISheetTabs sheetTabs = workbook.getSheetTabs();

// 获取工作表标签的数量
System.out.println("工作表标签的数量:" + sheetTabs.getCount());

// 获取每个工作表的名称、类型和索引
for (ISheetTab item : workbook.getSheetTabs()){
    System.out.println("工作表名称:" + item.getName() + ",类型:" + item.getSheetType() + ",索引:" + item.getIndex());
}