# Worksheet API 参考

## 概述

Worksheet API 提供管理 Excel 工作表的全面功能，包括单元格操作、样式设置、行列管理、格式化、图片、超链接、表格和打印设置等。

## 工作表信息

int ws_min_row(WorksheetHandle ws)

  获取最小行号。

  参数:

    - ws -- Worksheet 句柄

  返回:

    获取最小行号。

int ws_max_row(WorksheetHandle ws)

  获取最大行号。

  参数:

    - ws -- Worksheet 句柄

  返回:

    获取最大行号。

int ws_min_col(WorksheetHandle ws)

  获取最小列号。

  参数:

    - ws -- Worksheet 句柄

  返回:

    获取最小列号。

int ws_max_col(WorksheetHandle ws)

  获取最大列号。

  参数:

    - ws -- Worksheet 句柄

  返回:

    获取最大列号。

const char *ws_name(WorksheetHandle ws)

  获取工作表名称。

  参数:

    - ws -- Worksheet 句柄

  返回:

    工作表名称。

int ws_set_name(WorksheetHandle ws, const char *newname)

  设置工作表名称。

  参数:

    - ws -- Worksheet 句柄

    - newname -- 新工作表名称。

  返回:

    成功返回 1，失败返回 0。

int ws_ws_type(WorksheetHandle ws)

  获取工作表类型。

  参数:

    - ws -- Worksheet 句柄

  返回:

    工作表类型(参见 `SheetTypeEnum`)。

int ws_get_ws_state(WorksheetHandle ws)

  获取工作表状态。

  参数:

    - ws -- Worksheet 句柄

  返回:

    工作表状态(参见 `SheetStateEnum`)。

## 单元格数据操作

int ws_cell_type(WorksheetHandle ws, int row, int col)

  获取单元格数据类型。

  参数:

    - ws -- Worksheet 句柄

    - row -- 行号。

    - col -- 列号。

  返回:

    单元格类型(参见 `CellTypeEnum`)。

int ws_contains_formula(WorksheetHandle ws, int row, int col)

  检查单元格是否包含公式。

  参数:

    - ws -- Worksheet 句柄

    - row -- 行号。

    - col -- 列号。

  返回:

    包含公式返回 1，否则返回 0。

int ws_contains_richtext(WorksheetHandle ws, int row, int col)

  检查单元格是否包含富文本。

  参数:

    - ws -- Worksheet 句柄

    - row -- 行号。

    - col -- 列号。

  返回:

    包含富文本返回 1，否则返回 0。

double ws_get_num(WorksheetHandle ws, int row, int col)

  从单元格获取数值。

  参数:

    - ws -- Worksheet 句柄

    - row -- 行号。

    - col -- 列号。

  返回:

    数值。

const char *ws_get_text(WorksheetHandle ws, int row, int col)

  从单元格获取文本值。

  参数:

    - ws -- Worksheet 句柄

    - row -- 行号。

    - col -- 列号。

  返回:

    文本字符串。

int ws_get_boolean(WorksheetHandle ws, int row, int col)

  从单元格获取布尔值。

  参数:

    - ws -- Worksheet 句柄

    - row -- 行号。

    - col -- 列号。

  返回:

    布尔值（1=true，0=false）。

double ws_get_datetime(WorksheetHandle ws, int row, int col)

  从单元格获取日期时间值。

  参数:

    - ws -- Worksheet 句柄

    - row -- 行号。

    - col -- 列号。

  返回:

    以 double 类型表示的日期时间值。

RichtextHandle ws_get_richtext(WorksheetHandle ws, int row, int col)

  从单元格获取富文本。

  参数:

    - ws -- Worksheet 句柄

    - row -- 行号。

    - col -- 列号。

  返回:

    富文本 handle。

const char *ws_get_formula_expr(WorksheetHandle ws, int row, int col)

  从单元格获取公式表达式。

  参数:

    - ws -- Worksheet 句柄

    - row -- 行号。

    - col -- 列号。

  返回:

    公式表达式。

int ws_get_error(WorksheetHandle ws, int row, int col)

  从单元格获取错误代码。

  参数:

    - ws -- Worksheet 句柄

    - row -- 行号。

    - col -- 列号。

  返回:

    错误代码(参见 `ErrorCodeEnum`)。

## 单元格数据设置

int ws_set_num(WorksheetHandle ws, int row, int col, double val)

  设置单元格数值。

  参数:

    - ws -- Worksheet 句柄

    - row -- 行号。

    - col -- 列号。

    - val -- 数值。

  返回:

    成功返回 1，失败返回 0。

int ws_set_text(WorksheetHandle ws, int row, int col, const char *val)

  设置单元格文本值。

  参数:

    - ws -- Worksheet 句柄

    - row -- 行号。

    - col -- 列号。

    - val -- 文本字符串。

  返回:

    成功返回 1，失败返回 0。

int ws_set_boolean(WorksheetHandle ws, int row, int col, int b)

  设置单元格布尔值。

  参数:

    - ws -- Worksheet 句柄

    - row -- 行号。

    - col -- 列号。

    - b -- 布尔值（1=true，0=false）。

  返回:

    成功返回 1，失败返回 0。

int ws_set_datetime(WorksheetHandle ws, int row, int col, double dt)

  设置单元格日期时间值。

  参数:

    - ws -- Worksheet 句柄

    - row -- 行号。

    - col -- 列号。

    - dt -- 以 double 类型表示的日期时间值。

  返回:

    成功返回 1，失败返回 0。

int ws_set_richtext(WorksheetHandle ws, int row, int col, RichtextHandle rt)

  设置单元格富文本。

  参数:

    - ws -- Worksheet 句柄

    - row -- 行号。

    - col -- 列号。

    - rt -- 富文本 handle。

  返回:

    成功返回 1，失败返回 0。

int ws_set_error(WorksheetHandle ws, int row, int col, int code)

  设置单元格错误值。

  参数:

    - ws -- Worksheet 句柄

    - row -- 行号。

    - col -- 列号。

    - code -- 错误代码(参见 `ErrorCodeEnum`)。

  返回:

    成功返回 1，失败返回 0。

## 公式操作

int ws_set_formula(WorksheetHandle ws, int row, int col, const char *expr)

  设置单元格公式。

  参数:

    - ws -- Worksheet 句柄

    - row -- 行号。

    - col -- 列号。

    - expr -- 公式表达式。

  返回:

    成功返回 1，失败返回 0。

int ws_set_formula_num(WorksheetHandle ws, int row, int col, double val)

  设置公式的数值结果。

  参数:

    - ws -- Worksheet 句柄

    - row -- 行号。

    - col -- 列号。

    - val -- 数值结果。

  返回:

    成功返回 1，失败返回 0。

int ws_set_formula_string(WorksheetHandle ws, int row, int col, const char *s)

  设置公式的字符串结果。

  参数:

    - ws -- Worksheet 句柄

    - row -- 行号。

    - col -- 列号。

    - s -- 字符串结果

  返回:

    成功返回 1，失败返回 0。

int ws_set_formula_boolean(WorksheetHandle ws, int row, int col, int b)

  设置公式的布尔值结果。

  参数:

    - ws -- Worksheet 句柄

    - row -- 行号。

    - col -- 列号。

    - b -- 布尔值结果

  返回:

    成功返回 1，失败返回 0。

int ws_set_formula_datetime(WorksheetHandle ws, int row, int col, double dt)

  设置公式的日期时间值结果。

  参数:

    - ws -- Worksheet 句柄

    - row -- 行号。

    - col -- 列号。

    - dt -- 日期时间值结果

  返回:

    成功返回 1，失败返回 0。

int ws_set_formula_error(WorksheetHandle ws, int row, int col, int code)

  设置公式的错误值结果。

  参数:

    - ws -- Worksheet 句柄

    - row -- 行号。

    - col -- 列号。

    - code -- 错误代码结果

  返回:

    成功返回 1，失败返回 0。

void ws_clear_contents(WorksheetHandle ws, int begin_row, int begin_col, int end_row, int end_col)

  清除指定范围内的单元格内容。

  参数:

    - ws -- Worksheet 句柄

    - begin_row -- 起始行号。

    - begin_col -- 起始列号。

    - end_row -- 终止行号。

    - end_col -- 终止列号。

## 单元格样式

void ws_set_cell_style(WorksheetHandle ws, int row, int col, StyleHandle style)

  设置特定单元格的样式。

  参数:

    - ws -- Worksheet 句柄

    - row -- 行号。

    - col -- 列号。

    - style -- Style 句柄

StyleHandle ws_cell_style(WorksheetHandle ws, int row, int col)

  从特定单元格获取样式。

  参数:

    - ws -- Worksheet 句柄

    - row -- 行号。

    - col -- 列号。

  返回:

    Style 句柄

StyleHandle ws_get_cell_style(WorksheetHandle ws, int row, int col)

  获取单元格样式。

  参数:

    - ws -- Worksheet 句柄

    - row -- 行号。

    - col -- 列号。

  返回:

    Style 句柄

void ws_set_range_style(WorksheetHandle ws, int start_row, int start_col, int stop_row, int stop_col, StyleHandle style)

  设置单元格范围的样式。

  参数:

    - ws -- Worksheet 句柄

    - start_row -- 起始行号。

    - start_col -- 起始列号。

    - stop_row -- 终止行号。

    - stop_col -- 终止列号。

    - style -- Style 句柄

## 行列尺寸

int ws_is_default_row_height(WorksheetHandle ws, int start, int end)

  检查行是否使用默认高度。

  参数:

    - ws -- Worksheet 句柄

    - start -- 起始行号。

    - end -- 终止行号。

  返回:

    默认高度返回 1，否则返回 0。

int ws_get_custom_row_height(WorksheetHandle ws, int start, int end, double *height, int unit)

  获取自定义行高。

  参数:

    - ws -- Worksheet 句柄

    - start -- 起始行号。

    - end -- 终止行号。

    - height -- 存储高度值的指针。

    - unit -- 高度单位(参见 `RowHeightUnitEnum`)。

  返回:

    存在自定义高度返回 1，否则返回 0。

void ws_set_custom_row_height(WorksheetHandle ws, int start, int end, double height, int unit)

  设置自定义行高。

  参数:

    - ws -- Worksheet 句柄

    - start -- 起始行号。

    - end -- 终止行号。

    - height -- 高度值。

    - unit -- 高度单位(参见 `RowHeightUnitEnum`)。

int ws_is_default_col_width(WorksheetHandle ws, int start, int end)

  检查行高是否为默认高度。

  参数:

    - ws -- Worksheet 句柄

    - start -- 起始列号。

    - end -- 终止列号。

  返回:

    默认高度返回 1，否则返回 0。

int ws_get_custom_col_width(WorksheetHandle ws, int start, int end, double *width, int unit)

  获取自定义行高。

  参数:

    - ws -- Worksheet 句柄

    - start -- 起始列号。

    - end -- 终止列号。

    - width -- 存储宽度值的指针。

    - unit -- 高度单位(参见 `ColWidthUnitEnum`)。

  返回:

    自定义列宽返回 1，否则返回 0。

void ws_set_custom_col_width(WorksheetHandle ws, int start, int end, double width, int unit)

  设置自定义列宽。

  参数:

    - ws -- Worksheet 句柄

    - start -- 起始列号。

    - end -- 终止列号。

    - width -- 宽度值。

    - unit -- 高度单位(参见 `ColWidthUnitEnum`)。

## 行和列样式

StyleHandle ws_row_style(WorksheetHandle ws, int row)

  获取整行的样式。

  参数:

    - ws -- Worksheet 句柄

    - row -- 行号。

  返回:

    Style 句柄

void ws_remove_row_style(WorksheetHandle ws, int row)

  删除整个行样式

  参数:

    - ws -- Worksheet 句柄

    - row -- 行号。

void ws_set_row_style(WorksheetHandle ws, int start_row, int stop_row, StyleHandle style)

  设置行范围的样式。

  参数:

    - ws -- Worksheet 句柄

    - start_row -- 起始行号。

    - stop_row -- 终止行号。

    - style -- Style 句柄

StyleHandle ws_col_style(WorksheetHandle ws, int col)

  获取整列的样式。

  参数:

    - ws -- Worksheet 句柄

    - col -- 列号。

  返回:

    Style 句柄

void ws_remove_col_style(WorksheetHandle ws, int col)

  删除列样式。

  参数:

    - ws -- Worksheet 句柄

    - col -- 列号。

void ws_set_col_style(WorksheetHandle ws, int start_col, int stop_col, StyleHandle style)

  设置列范围的样式。

  参数:

    - ws -- Worksheet 句柄

    - start_col -- 起始列号。

    - stop_col -- 终止列号。

    - style -- Style 句柄

## 行和列的可见属性

int ws_row_hidden(WorksheetHandle ws, int row)

  检查行是否隐藏。

  参数:

    - ws -- Worksheet 句柄

    - row -- 行号。

  返回:

    隐藏返回 1，否则返回 0。

void ws_set_row_hidden(WorksheetHandle ws, int start_row, int stop_row, int hidden)

  设置行隐藏状态

  参数:

    - ws -- Worksheet 句柄

    - start_row -- 起始行号。

    - stop_row -- 终止行号。

    - hidden -- 1 隐藏，0 显示

int ws_col_hidden(WorksheetHandle ws, int col)

  检查列是否隐藏。

  参数:

    - ws -- Worksheet 句柄

    - col -- 列号。

  返回:

    隐藏返回 1，否则返回 0。

void ws_set_col_hidden(WorksheetHandle ws, int start_col, int stop_col, int hidden)

  设置列的可见状态。

  参数:

    - ws -- Worksheet 句柄

    - start_col -- 起始列号。

    - stop_col -- 终止列号。

    - hidden -- 1 隐藏，0 显示

## 行列操作

int ws_insert_row(WorksheetHandle ws, int row, int count)

  插入行。

  参数:

    - ws -- Worksheet 句柄

    - row -- 起始行号。

    - count -- 要插入的行数。

  返回:

    成功返回 1，失败返回 0。

int ws_delete_row(WorksheetHandle ws, int begin, int end)

  删除行。

  参数:

    - ws -- Worksheet 句柄

    - begin -- 起始行号。

    - end -- 终止行号。

  返回:

    成功返回 1，失败返回 0。

int ws_insert_col(WorksheetHandle ws, int col, int count)

  插入列。

  参数:

    - ws -- Worksheet 句柄

    - col -- 起始列号。

    - count -- 要插入的列数。

  返回:

    成功返回 1，失败返回 0。

int ws_delete_col(WorksheetHandle ws, int begin, int end)

  删除列。

  参数:

    - ws -- Worksheet 句柄

    - begin -- 起始列号。

    - end -- 终止列号。

  返回:

    成功返回 1，失败返回 0。

## 范围移动

int ws_shift_range_down(WorksheetHandle ws, int start_col, int end_col, int start_row, int count)

  向下移动范围。

  参数:

    - ws -- Worksheet 句柄

    - start_col -- 起始列号。

    - end_col -- 终止列号。

    - start_row -- 起始行号。

    - count -- 要移动的行数。

  返回:

    成功返回 1，失败返回 0。

int ws_shift_range_up(WorksheetHandle ws, int start_col, int end_col, int start_row, int count)

  向上移动范围。

  参数:

    - ws -- Worksheet 句柄

    - start_col -- 起始列号。

    - end_col -- 终止列号。

    - start_row -- 起始行号。

    - count -- 要移动的行数。

  返回:

    成功返回 1，失败返回 0。

int ws_shift_range_right(WorksheetHandle ws, int start_row, int end_row, int start_col, int count)

  向右移动范围。

  参数:

    - ws -- Worksheet 句柄

    - start_row -- 起始行号。

    - end_row -- 终止行号。

    - start_col -- 起始列号。

    - count -- 要移动的列数。

  返回:

    成功返回 1，失败返回 0。

int ws_shift_range_left(WorksheetHandle ws, int start_row, int end_row, int start_col, int count)

  向左移动范围。

  参数:

    - ws -- Worksheet 句柄

    - start_row -- 起始行号。

    - end_row -- 终止行号。

    - start_col -- 起始列号。

    - count -- 要移动的列数。

  返回:

    成功返回 1，失败返回 0。

## 图片和背景

void ws_set_bg_picture(WorksheetHandle ws, const char *file)

  设置工作表背景图片。

  参数:

    - ws -- Worksheet 句柄

    - file -- 图片文件路径。

int ws_add_cell_image(WorksheetHandle ws, const char *file, int start_row, int start_col, int stop_row, int stop_col)

  添加图片以适应特定单元格范围。

  参数:

    - ws -- Worksheet 句柄

    - file -- 图片文件路径。

    - start_row -- 起始行号。

    - start_col -- 起始列号。

    - stop_row -- 终止行号。

    - stop_col -- 终止列号。

  返回:

    图片索引。

int ws_add_image_with_two_cells(WorksheetHandle ws, const char *file, int row1, int col1, int row2, int col2, int offset_x1, int offset_y1, int offset_x2, int offset_y2)

  Add an image to the worksheet, anchoring it between two cells.

  参数:

    - ws -- Worksheet 句柄

    - file -- 图片文件的路径。

    - row1 -- 左上角定位单元格的行号。

    - col1 -- 左上角定位单元格的列号。

    - row2 -- 右下角定位单元格的行号。

    - col2 -- 右下角定位单元格的列号。

    - offset_x1 -- 左上角定位单元格中的水平偏移量(像素值)。

    - offset_y1 -- 左上角定位单元格中的垂直偏移量(像素值)。

    - offset_x2 -- 右下角定位单元格中的水平偏移量(像素值)。

    - offset_y2 -- 右下角定位单元格中的垂直偏移量(像素值)。

  返回:

    所添加图片的标识。

int ws_add_image_with_one_cell(WorksheetHandle ws, const char *file, int row, int col, int width, int height, double scale, int offset_x, int offset_y)

  在worksheet中添加图片，图片以单个单元格定位。如果给定图片的宽度和高度均为 0，则以 scale 参数计算图片的大小。

  参数:

    - ws -- Worksheet 句柄

    - file -- 图片文件的路径。

    - row -- 定位单元格的行号。

    - col -- 定位单元格的列号。

    - width -- 设置的以像素表示的图片宽度。

    - height -- 设置的以像素表示的图片高度。

    - scale -- 图片的缩放系数。

    - offset_x -- 定位单元格中的水平偏移量(像素值)。

    - offset_y -- 定位单元格中的垂直偏移量(像素值)。

  返回:

    所添加图片的标识。

int ws_add_absolute_image(WorksheetHandle ws, const char *file, int x, int y, int width, int height, double scale)

  在worksheet中添加图片，以像素坐标定位图片。如果给定的图片宽度和高度均为 0，则使用 scale 参数计算图片的大小。

  参数:

    - ws -- Worksheet 句柄

    - file -- 图片文件的路径。

    - x -- 图片左上角的 x 坐标(像素值)。

    - y -- 图片左上角的 y 坐标(像素值)。

    - width -- 设置的以像素表示的图片宽度。

    - height -- 设置的以像素表示的图片高度。

    - scale -- 图片的缩放系数。

  返回:

    所添加图片的标识。

int ws_image_num(WorksheetHandle ws)

  获取工作表中图片的数量。

  参数:

    - ws -- Worksheet 句柄

  返回:

    图片数量。

int ws_get_image_id(WorksheetHandle ws, int index)

  根据图像的顺序检索图片标识。

  参数:

    - ws -- Worksheet 句柄

    - index -- 基于 0 的图片索引。

  返回:

    图片标识。

ImageAnchorEnum ws_image_anchor_type(WorksheetHandle ws, int image_id)

  获取图片的定位方式。

  参数:

    - ws -- Worksheet 句柄

    - image_id -- 图片的标识。

  返回:

    ImageAnchorEnum 枚举值。

bool ws_get_anchored_cell(WorksheetHandle ws, int image_id, int *row, int *col)

  检索以单个单元格定位的单元格行号和列号。

  参数:

    - ws -- Worksheet 句柄

    - image_id -- 图片的标识。

    - row -- 存储行号的指针。

    - col -- 存储列号的指针。

  返回:

    成功返回 true。

bool ws_get_absolute_coord(WorksheetHandle ws, int image_id, int *x, int *y)

  检索以绝对坐标定位的坐标。

  参数:

    - ws -- Worksheet 句柄

    - image_id -- 图片的标识。

    - x -- 存储 x 坐标的指针。

    - y -- 存储 y 坐标的指针。

  返回:

    成功返回 true。

void ws_delete_image(WorksheetHandle ws, int image_id)

  根据标识删除图片。

  参数:

    - ws -- Worksheet 句柄

    - image_id -- 要删除的图片标识。

void ws_remove_image(WorksheetHandle ws, int row, int col)

  删除以单个单元格定位的图片。

  参数:

    - ws -- Worksheet 句柄

    - row -- 定位单元格的行号。

    - col -- 定位单元格的列号。

void ws_remove_absolute_image(WorksheetHandle ws, int x, int y)

  删除以绝对坐标定位的图片。

  参数:

    - ws -- Worksheet 句柄

    - x -- 图片的 x 坐标 (像素值)。

    - y -- 图片的 y 坐标 (像素值)。

## 单元格导航

int ws_first_data_cell(WorksheetHandle ws, int *row, int *col)

  查询首个数据单元格

  参数:

    - ws -- Worksheet 句柄

    - row -- 存储行号的指针。

    - col -- 存储列号的指针。

  返回:

    找到返回 1，工作表为空返回 0。

int ws_last_data_cell(WorksheetHandle ws, int *row, int *col)

  查找最后一个包含数据的单元格。

  参数:

    - ws -- Worksheet 句柄

    - row -- 存储行号的指针。

    - col -- 存储列号的指针。

  返回:

    找到返回 1，工作表为空返回 0。

## 合并单元格

int ws_merge_num(WorksheetHandle ws)

  获取合并范围的数量。

  参数:

    - ws -- Worksheet 句柄

  返回:

    合并范围的数量。

int ws_merged_range(WorksheetHandle ws, int index, int *start_row, int *start_col, int *stop_row, int *stop_col)

  获取合并范围。

  参数:

    - ws -- Worksheet 句柄

    - index -- 合并范围的索引。

    - start_row -- 存储起始行的指针

    - start_col -- 存储起始列的指针

    - stop_row -- 存储终止行的指针

    - stop_col -- 存储终止列的指针

  返回:

    成功返回 1，失败返回 0。

int ws_merge(WorksheetHandle ws, int start_row, int start_col, int stop_row, int stop_col)

  合并单元格范围。

  参数:

    - ws -- Worksheet 句柄

    - start_row -- 起始行号。

    - start_col -- 起始列号。

    - stop_row -- 终止行号。

    - stop_col -- 终止列号。

  返回:

    成功返回 1，失败返回 0。

int ws_unmerge(WorksheetHandle ws, int row, int col)

  取消指定位置的单元格合并。

  参数:

    - ws -- Worksheet 句柄

    - row -- 行号。

    - col -- 列号。

  返回:

    成功返回 1，失败返回 0。

## 表格操作

int ws_tabledef_count(WorksheetHandle ws)

  获取工作表中的表格数量。

  参数:

    - ws -- Worksheet 句柄

  返回:

    表格数量。

const char *ws_get_tabledef_name(WorksheetHandle ws, int index)

  按索引获取表格名称。

  参数:

    - ws -- Worksheet 句柄

    - index -- 表格索引。

  返回:

    表格名称。

int ws_set_tabledef_name(WorksheetHandle ws, int index, const char *new_name)

  设置表格名称。

  参数:

    - ws -- Worksheet 句柄

    - index -- 表格索引。

    - new_name -- 新表格名称。

  返回:

    成功返回 1，失败返回 0。

TabledefHandle ws_get_tabledef(WorksheetHandle ws, int index)

  按索引获取表格句柄。

  参数:

    - ws -- Worksheet 句柄

    - index -- 表格索引。

  返回:

    Tabledef 句柄

TabledefHandle ws_get_tabledef_by_name(WorksheetHandle ws, const char *name)

  按名称获取表格句柄。

  参数:

    - ws -- Worksheet 句柄

    - name -- 表格名称。

  返回:

    Tabledef 句柄

TabledefHandle ws_add_tabledef(WorksheetHandle ws, const char *name, int begin_row, int begin_col, int end_row, int end_col)

  向工作表添加表格。

  参数:

    - ws -- Worksheet 句柄

    - name -- 表格名称。

    - begin_row -- 起始行号。

    - begin_col -- 起始列号。

    - end_row -- 终止行号。

    - end_col -- 终止列号。

  返回:

    Tabledef 句柄

int ws_delete_tabledef(WorksheetHandle ws, const char *name)

  从工作表中删除表格。

  参数:

    - ws -- Worksheet 句柄

    - name -- 表格名称。

  返回:

    成功返回 1，失败返回 0。

## 分组和大纲

void ws_group_rows(WorksheetHandle ws, int begin_row, int end_row, int collapsed)

  分组行。

  参数:

    - ws -- Worksheet 句柄

    - begin_row -- 起始行号。

    - end_row -- 终止行号。

    - collapsed -- 1 折叠，0 展开。

void ws_ungroup_rows(WorksheetHandle ws, int begin_row, int end_row)

  取消行分组。

  参数:

    - ws -- Worksheet 句柄

    - begin_row -- 起始行号。

    - end_row -- 终止行号。

void ws_group_cols(WorksheetHandle ws, int begin_col, int end_col, int collapsed)

  分组列。

  参数:

    - ws -- Worksheet 句柄

    - begin_col -- 起始列号。

    - end_col -- 终止列号。

    - collapsed -- 1 折叠，0 展开。

void ws_ungroup_cols(WorksheetHandle ws, int begin_col, int end_col)

  取消列分组。

  参数:

    - ws -- Worksheet 句柄

    - begin_col -- 起始列号。

    - end_col -- 终止列号。

int ws_row_outline_level(WorksheetHandle ws, int row, int *collapsed)

  获取行大纲级别。

  参数:

    - ws -- Worksheet 句柄

    - row -- 行号。

    - collapsed -- 存储折叠状态的指针。

  返回:

    大纲级别。

int ws_col_outline_level(WorksheetHandle ws, int col, int *collapsed)

  获取列大纲级别。

  参数:

    - ws -- Worksheet 句柄

    - col -- 列号。

    - collapsed -- 存储折叠状态的指针。

  返回:

    大纲级别。

int ws_max_row_outline_level(WorksheetHandle ws)

  获取最大行大纲级别。

  参数:

    - ws -- Worksheet 句柄

  返回:

    最大大纲级别。

int ws_max_col_outline_level(WorksheetHandle ws)

  获取最大列大纲级别。

  参数:

    - ws -- Worksheet 句柄

  返回:

    最大大纲级别。

void ws_delete_row_outline(WorksheetHandle ws)

  删除所有行大纲。

  参数:

    - ws -- Worksheet 句柄

void ws_delete_col_outline(WorksheetHandle ws)

  删除所有列大纲。

  参数:

    - ws -- Worksheet 句柄

int ws_group_summary_below(WorksheetHandle ws)

  检查组汇总是否在详细信息下方。

  参数:

    - ws -- Worksheet 句柄

  返回:

    汇总在下方返回 1，在上方返回 0。

void ws_set_group_summary_below(WorksheetHandle ws, int below)

  设置组汇总位置。

  参数:

    - ws -- Worksheet 句柄

    - below -- 1 汇总在下方，0 在上方。

int ws_group_summary_right(WorksheetHandle ws)

  检查组汇总是否在详细信息右侧。

  参数:

    - ws -- Worksheet 句柄

  返回:

    汇总在右侧返回 1，在左侧返回 0。

void ws_set_group_summary_right(WorksheetHandle ws, int right)

  设置组汇总水平位置。

  参数:

    - ws -- Worksheet 句柄

    - right -- 1 汇总在右侧，0 在左侧。

## 超链接

int ws_add_hyperlink(WorksheetHandle ws, const char *hyperlink, int start_row, int start_col, int end_row, int end_col)

  向单元格范围添加超链接。

  参数:

    - ws -- Worksheet 句柄

    - hyperlink -- 超链接 URL 或地址。

    - start_row -- 起始行号。

    - start_col -- 起始列号。

    - end_row -- 终止行号。

    - end_col -- 终止列号。

  返回:

    超链接索引。

int ws_hyperlink_num(WorksheetHandle ws)

  获取超链接数量。

  参数:

    - ws -- Worksheet 句柄

  返回:

    超链接数量。

int ws_hyperlink_index(WorksheetHandle ws, int row, int col)

  获取单元格的超链接索引。

  参数:

    - ws -- Worksheet 句柄

    - row -- 行号。

    - col -- 列号。

  返回:

    超链接索引，无超链接返回 -1。

const char *ws_hyperlink(WorksheetHandle ws, int index, int *start_row, int *start_col, int *end_row, int *end_col)

  获取超链接信息。

  参数:

    - ws -- Worksheet 句柄

    - index -- 超链接索引。

    - start_row -- 存储起始行的指针

    - start_col -- 存储起始列的指针

    - end_row -- 存储终止行的指针

    - end_col -- 存储终止列的指针

  返回:

    超链接 URL。

int ws_delete_hyperlink(WorksheetHandle ws, int index)

  删除超链接。

  参数:

    - ws -- Worksheet 句柄

    - index -- 超链接索引。

  返回:

    成功返回 1，失败返回 0。

## 工作表保护

int ws_is_protected(WorksheetHandle ws)

  检查工作表是否受保护。

  参数:

    - ws -- Worksheet 句柄

  返回:

    受保护返回 1，否则返回 0。

int ws_protect(WorksheetHandle ws, int item, const char *password)

  保护工作表。

  参数:

    - ws -- Worksheet 句柄

    - item -- 保护选项(参见 `SheetProtectEnum`)。

    - password -- 保护密码。

  返回:

    成功返回 1，失败返回 0。

void ws_unprotect(WorksheetHandle ws)

  取消工作表保护。

  参数:

    - ws -- Worksheet 句柄

int ws_protect_range(WorksheetHandle ws, int start_row, int start_col, int end_row, int end_col)

  保护特定单元格范围。

  参数:

    - ws -- Worksheet 句柄

    - start_row -- 起始行号。

    - start_col -- 起始列号。

    - end_row -- 终止行号。

    - end_col -- 终止列号。

  返回:

    成功返回 1，失败返回 0。

int ws_set_editable_range(WorksheetHandle ws, int start_row, int start_col, int end_row, int end_col)

  允许在受保护的工作表中编辑特定范围。

  参数:

    - ws -- Worksheet 句柄

    - start_row -- 起始行号。

    - start_col -- 起始列号。

    - end_row -- 终止行号。

    - end_col -- 终止列号。

  返回:

    成功返回 1，失败返回 0。

int ws_editable_range_count(WorksheetHandle ws)

  获取可编辑范围的数量。

  参数:

    - ws -- Worksheet 句柄

  返回:

    可编辑范围的数量。

const char *ws_get_editable_range(WorksheetHandle ws, int index, int *start_row, int *start_col, int *stop_row, int *stop_col)

  获取可编辑范围的信息。

  参数:

    - ws -- Worksheet 句柄

    - index -- 范围索引。

    - start_row -- 存储起始行的指针

    - start_col -- 存储起始列的指针

    - stop_row -- 存储终止行的指针

    - stop_col -- 存储终止列的指针

  返回:

    范围名称。

int ws_delete_editable_range(WorksheetHandle ws, int index)

  删除一个可编辑范围。

  参数:

    - ws -- Worksheet 句柄

    - index -- 范围索引。

  返回:

    成功返回 1，失败返回 0。

## 视图和显示设置

int ws_zoom(WorksheetHandle ws)

  获取工作表缩放级别。

  参数:

    - ws -- Worksheet 句柄

  返回:

    缩放百分比。

void ws_set_zoom(WorksheetHandle ws, int zoom)

  设置工作表缩放级别。

  参数:

    - ws -- Worksheet 句柄

    - zoom -- 缩放百分比。

int ws_right_to_left(WorksheetHandle ws)

  检查是否启用从右到左显示。

  参数:

    - ws -- Worksheet 句柄

  返回:

    从右到左返回 1，否则返回 0。

void ws_set_right_to_left(WorksheetHandle ws, int right_to_left)

  设置从右到左显示。

  参数:

    - ws -- Worksheet 句柄

    - right_to_left -- 1 从右到左，0 从左到右。

void ws_topleft_cell(WorksheetHandle ws, int *row, int *col)

  获取左上角可见单元格。

  参数:

    - ws -- Worksheet 句柄

    - row -- 存储行号的指针。

    - col -- 存储列号的指针。

void ws_set_topleft_cell(WorksheetHandle ws, int row, int col)

  设置左上角可见单元格。

  参数:

    - ws -- Worksheet 句柄

    - row -- 行号。

    - col -- 列号。

void ws_active_cell(WorksheetHandle ws, int *row, int *col)

  获取活动单元格。

  参数:

    - ws -- Worksheet 句柄

    - row -- 存储行号的指针。

    - col -- 存储列号的指针。

void ws_set_active_cell(WorksheetHandle ws, int row, int col)

  设置活动单元格。

  参数:

    - ws -- Worksheet 句柄

    - row -- 行号。

    - col -- 列号。

void ws_split_cell(WorksheetHandle ws, int *row, int *col)

  获取拆分单元格位置。

  参数:

    - ws -- Worksheet 句柄

    - row -- 存储行号的指针。

    - col -- 存储列号的指针。

void ws_set_split_cell(WorksheetHandle ws, int row, int col)

  设置拆分单元格位置。

  参数:

    - ws -- Worksheet 句柄

    - row -- 行号。

    - col -- 列号。

int ws_display_gridlines(WorksheetHandle ws)

  检查是否显示网格线。

  参数:

    - ws -- Worksheet 句柄

  返回:

    显示网格线返回 1，否则返回 0。

void ws_set_display_gridlines(WorksheetHandle ws, int show)

  设置网格线显示。

  参数:

    - ws -- Worksheet 句柄

    - show -- 1 显示网格线，0 隐藏。

## 分页符

int ws_row_break_count(WorksheetHandle ws)

  获取行分页符数量。

  参数:

    - ws -- Worksheet 句柄

  返回:

    行分页符数量。

int ws_row_break(WorksheetHandle ws, int index)

  获取行分页符位置。

  参数:

    - ws -- Worksheet 句柄

    - index -- 分页符索引。

  返回:

    分页符的行索引。

int ws_set_row_break(WorksheetHandle ws, int row, int pageBreak)

  设置行分页符。

  参数:

    - ws -- Worksheet 句柄

    - row -- 行号。

    - pageBreak -- 1 设置分页符，0 移除。

  返回:

    成功返回 1，失败返回 0。

int ws_col_break_count(WorksheetHandle ws)

  获取列分页符数量。

  参数:

    - ws -- Worksheet 句柄

  返回:

    列分页符数量。

int ws_col_break(WorksheetHandle ws, int index)

  获取列分页符位置。

  参数:

    - ws -- Worksheet 句柄

    - index -- 分页符索引。

  返回:

    分页符的列索引。

int ws_set_col_break(WorksheetHandle ws, int col, int pageBreak)

  设置列分页符。

  参数:

    - ws -- Worksheet 句柄

    - col -- 列号。

    - pageBreak -- 1 设置分页符，0 移除。

  返回:

    成功返回 1，失败返回 0。

## 打印设置

int ws_print_gridlines(WorksheetHandle ws)

  检查是否打印网格线。

  参数:

    - ws -- Worksheet 句柄

  返回:

    打印网格线返回 1，否则返回 0。

void ws_set_print_gridlines(WorksheetHandle ws, int print)

  设置是否打印网格线。

  参数:

    - ws -- Worksheet 句柄

    - print -- 1 打印，0 不打印。

int ws_print_headings(WorksheetHandle ws)

  检查是否打印标题。

  参数:

    - ws -- Worksheet 句柄

  返回:

    打印标题返回 1，否则返回 0。

void ws_set_print_headings(WorksheetHandle ws, int print)

  设置是否打印标题。

  参数:

    - ws -- Worksheet 句柄

    - print -- 1 打印，0 不打印。

int ws_h_centered_printing(WorksheetHandle ws)

  检查是否启用水平居中打印。

  参数:

    - ws -- Worksheet 句柄

  返回:

    水平居中返回 1，否则返回 0。

void ws_set_h_centered_printing(WorksheetHandle ws, int centered)

  设置水平居中打印。

  参数:

    - ws -- Worksheet 句柄

    - centered -- 1 水平居中，0 不居中。

int ws_v_centered_printing(WorksheetHandle ws)

  检查是否启用垂直居中打印。

  参数:

    - ws -- Worksheet 句柄

  返回:

    垂直居中返回 1，否则返回 0。

void ws_set_v_centered_printing(WorksheetHandle ws, int centered)

  设置垂直居中打印。

  参数:

    - ws -- Worksheet 句柄

    - centered -- 1 垂直居中，0 不居中。

## 页边距

double ws_left_margin(WorksheetHandle ws)

  获取左边距。

  参数:

    - ws -- Worksheet 句柄

  返回:

    左边距值。

void ws_set_left_margin(WorksheetHandle ws, double value)

  设置左边距。

  参数:

    - ws -- Worksheet 句柄

    - value -- 左边距值。

double ws_right_margin(WorksheetHandle ws)

  获取右边距。

  参数:

    - ws -- Worksheet 句柄

  返回:

    右边距值。

void ws_set_right_margin(WorksheetHandle ws, double value)

  设置右边距。

  参数:

    - ws -- Worksheet 句柄

    - value -- 右边距值。

double ws_top_margin(WorksheetHandle ws)

  获取上边距。

  参数:

    - ws -- Worksheet 句柄

  返回:

    上边距值。

void ws_set_top_margin(WorksheetHandle ws, double value)

  设置上边距。

  参数:

    - ws -- Worksheet 句柄

    - value -- 上边距值。

double ws_bottom_margin(WorksheetHandle ws)

  获取下边距。

  参数:

    - ws -- Worksheet 句柄

  返回:

    下边距值。

void ws_set_bottom_margin(WorksheetHandle ws, double value)

  设置下边距。

  参数:

    - ws -- Worksheet 句柄

    - value -- 下边距值。

double ws_header_margin(WorksheetHandle ws)

  获取页眉边距。

  参数:

    - ws -- Worksheet 句柄

  返回:

    页眉边距值。

void ws_set_header_margin(WorksheetHandle ws, double value)

  设置页眉边距。

  参数:

    - ws -- Worksheet 句柄

    - value -- 页眉边距值。

double ws_footer_margin(WorksheetHandle ws)

  获取页脚边距。

  参数:

    - ws -- Worksheet 句柄

  返回:

    页脚边距值。

void ws_set_footer_margin(WorksheetHandle ws, double value)

  设置页脚边距。

  参数:

    - ws -- Worksheet 句柄

    - value -- 页脚边距值。

## 页面设置

int ws_paper(WorksheetHandle ws)

  获取纸张大小。

  参数:

    - ws -- Worksheet 句柄

  返回:

    纸张大小代码。

int ws_set_paper(WorksheetHandle ws, int paper_code)

  设置纸张大小。

  参数:

    - ws -- Worksheet 句柄

    - paper_code -- 纸张大小代码。

  返回:

    成功返回 1，失败返回 0。

int ws_print_scale(WorksheetHandle ws)

  获取打印缩放比例。

  参数:

    - ws -- Worksheet 句柄

  返回:

    打印缩放百分比。

void ws_set_print_scale(WorksheetHandle ws, int zoom)

  设置打印缩放比例。

  参数:

    - ws -- Worksheet 句柄

    - zoom -- 打印缩放百分比。

int ws_page_orientation(WorksheetHandle ws)

  获取页面方向。

  参数:

    - ws -- Worksheet 句柄

  返回:

    页面方向(参见 `PageOrientEnum`)。

void ws_set_page_orientation(WorksheetHandle ws, int orientation)

  设置页面方向。

  参数:

    - ws -- Worksheet 句柄

    - orientation -- 页面方向(参见 `PageOrientEnum`)。

int ws_print_errors(WorksheetHandle ws)

  获取错误打印选项。

  参数:

    - ws -- Worksheet 句柄

  返回:

    错误打印选项(参见 `PrintErrorEnum`)。

void ws_set_print_errors(WorksheetHandle ws, int way)

  设置错误打印选项。

  参数:

    - ws -- Worksheet 句柄

    - way -- 错误打印选项(参见 `PrintErrorEnum`)。

int ws_fit_page_height(WorksheetHandle ws)

  获取适应页面高度设置。

  参数:

    - ws -- Worksheet 句柄

  返回:

    适合的页数。

void ws_set_fit_page_height(WorksheetHandle ws, int num)

  设置适应页面高度。

  参数:

    - ws -- Worksheet 句柄

    - num -- 要适合的页数(0 禁用)。

int ws_fit_page_width(WorksheetHandle ws)

  获取适合页面宽度设置。

  参数:

    - ws -- Worksheet 句柄

  返回:

    适合页面宽度的页数。

void ws_set_fit_page_width(WorksheetHandle ws, int num)

  设置适合页面宽度。

  参数:

    - ws -- Worksheet 句柄

    - num -- 适合页面的宽度页数(0 禁用)。

## 页眉页脚

const char *ws_page_header(WorksheetHandle ws)

  获取页眉。

  参数:

    - ws -- Worksheet 句柄

  返回:

    页眉字符串。

void ws_set_page_header(WorksheetHandle ws, const char *header)

  设置页眉。

  参数:

    - ws -- Worksheet 句柄

    - header -- 页眉字符串。

const char *ws_page_footer(WorksheetHandle ws)

  获取页脚。

  参数:

    - ws -- Worksheet 句柄

  返回:

    页脚字符串。

void ws_set_page_footer(WorksheetHandle ws, const char *footer)

  设置页脚。

  参数:

    - ws -- Worksheet 句柄

    - footer -- 页脚字符串。

## 枚举类型

相关枚举类型的定义请参考 枚举类型。

## 使用说明

- 所有行号和列号都是从 1 开始的

- 单元格范围是包含性的(起始和结束索引都包含在内)

- 样式句柄在不再需要时应释放

- 富文本句柄使用后应释放

- 表格句柄由工作表管理，不需要显式释放

Styled using the Piccolo Theme