# Document 接口

Document 接口表示管理 Excel 工作簿的主文档对象。

## 类 (Classes)

class oo::iDocument

  用于创建和管理 Excel 工作簿的主要文档接口。

  oo::iWorkbook *get_workbook()

    获取与此文档关联的工作簿。

    返回:

      指向工作簿的指针

  bool save(const char *filename = nullptr) const

    将文档保存到文件。

    参数:

      filename -- 保存文档的文件名(含路径)。如果为 null，则保存到当前文件。

    返回:

      成功返回 true，否则返回 false

  bool save_to_csv(const char *filename = nullptr) const

    Save the current active worksheet to a csv file.

    参数:

      filename -- 要保存文件的路径和文件名。如果为NULL，则以工作表名称作为文件名，并保存到当前工作目录。

    返回:

      成功返回 true，否则返回 false

  void release()

    释放文档并清理相关资源。

    警告

    当不再需要文档时应调用此方法，以防止内存泄漏。

## 全局函数

const char *lib_version()

  获取库版本字符串。

  返回:

    包含库版本信息的常量字符串

void set_product_key(const char *user, const char *key)

  设置许可序列号。

  参数:

    - user -- User name

    - key -- 许可序列号

oo::iDocument *create_document()

  创建一个新的空文档。

  返回:

    指向新创建文档的指针

oo::iDocument *load_document(const char *filename)

  从文件加载现有文档。

  参数:

    filename -- 要加载的 Excel 文件(含路径)

  返回:

    指向已加载文档的指针，失败返回 nullptr

oo::iCSVPolicy *create_csv_policy()

  创建一个新的默认 CSV 策略

  返回:

    Pointer to newly created csv policy

oo::iDocument *load_csv(const char *filename, const oo::iCSVPolicy *policy)

  Load an existing document from csv file.

  参数:

    - filename -- Path to the csv file to load

    - policy -- 一个csv策略，用于设置解析csv文件时所遵循的规则。

  返回:

    指向已加载文档的指针，失败返回 nullptr

## 使用示例

    #include "oosxl.hxx"

    // Create a new document
    oo::iDocument* doc = create_document();

    if (doc) {
        // Get workbook and work with sheets
        oo::iWorkbook* workbook = doc->get_workbook();

        // Perform operations...

        // Save document
        doc->save("example.xlsx");

        // Clean up
        doc->release();
    }

Styled using the Piccolo Theme