XLSX

保护

锁定工作表和工作簿、定义保护范围,以及带密码的文件共享

工作表保护

使用密码保护工作表并限制用户操作。提供明文 password 时,会自动计算传统的 XOR 哈希和现代 SHA-512 哈希。

{
  "worksheets": [
    {
      "name": "Protected",
      "rows": [
        { "cells": [{ "value": "Quarter" }, { "value": "2023" }, { "value": "2024" }] },
        { "cells": [{ "value": "Q1" }, { "value": 100 }, { "value": 120 }] },
        { "cells": [{ "value": "Q2" }, { "value": 150 }, { "value": 170 }] }
      ],
      "protection": {
        "sheet": true,
        "password": "secret",
        "formatCells": false,
        "insertRows": false,
        "sort": false
      }
    }
  ]
}

工作表保护选项

选项类型说明
sheetboolean启用工作表保护
passwordstring明文密码(自动计算哈希)
objectsboolean保护对象
scenariosboolean保护方案
formatCellsboolean允许格式化单元格
formatColumnsboolean允许格式化列
formatRowsboolean允许格式化行
insertColumnsboolean允许插入列
insertRowsboolean允许插入行
insertHyperlinksboolean允许插入超链接
deleteColumnsboolean允许删除列
deleteRowsboolean允许删除行
selectLockedCellsboolean允许选取锁定单元格
sortboolean允许排序
autoFilterboolean允许自动筛选
pivotTablesboolean允许数据透视表
selectUnlockedCellsboolean允许选取未锁定单元格

现代加密

提供 password 时,会自动生成传统 XOR 哈希(用于兼容性)和现代 SHA-512 哈希(使用随机盐值和 100,000 次迭代)。也可以直接提供预计算的值:

{
  "protection": {
    "sheet": true,
    "algorithmName": "SHA-512",
    "hashValue": "base64hash...",
    "saltValue": "base64salt...",
    "spinCount": 100000
  }
}
选项类型说明
algorithmNamestring哈希算法(如 "SHA-512"
hashValuestringBase64 编码的密码哈希
saltValuestringBase64 编码的盐值
spinCountnumber哈希迭代次数

保护范围

在受保护的工作表中定义指定用户可编辑的命名区域:

{
  "worksheets": [
    {
      "name": "Protected",
      "rows": [
        { "cells": [{ "value": "Quarter" }, { "value": "2023" }, { "value": "2024" }] },
        { "cells": [{ "value": "Q1" }, { "value": 100 }, { "value": 120 }] },
        { "cells": [{ "value": "Q2" }, { "value": 150 }, { "value": 170 }] }
      ],
      "protection": {
        "sheet": true,
        "password": "secret"
      },
      "protectedRanges": [{ "name": "EditableRange", "sqref": "B2:C5", "password": "range1" }]
    }
  ]
}

保护范围选项

选项类型说明
namestring范围名称(必填)
sqrefstring单元格范围引用,如 "B2:C5"(必填)
passwordstring明文密码(自动计算哈希)
algorithmNamestring现代加密的哈希算法
hashValuestringBase64 编码的密码哈希
saltValuestringBase64 编码的盐值
spinCountnumber哈希迭代次数
securityDescriptorstringSID 安全描述符字符串

工作簿保护

在工作簿级别锁定工作簿结构和窗口。支持为结构和修订分别设置密码:

{
  "workbookProtection": {
    "lockStructure": true,
    "lockWindows": true,
    "workbookPassword": "admin"
  },
  "worksheets": [
    {
      "name": "Data",
      "rows": [{ "cells": [{ "value": "Protected workbook" }] }]
    }
  ]
}

工作簿保护选项

选项类型说明
lockStructureboolean锁定工作簿结构(添加/删除/重命名工作表)
lockWindowsboolean锁定工作簿窗口
lockRevisionboolean锁定修订
workbookPasswordstring明文结构密码(自动计算哈希)
revisionsPasswordstring明文修订密码(自动计算哈希)

两个密码还支持现代加密选项:workbookAlgorithmNameworkbookHashValueworkbookSaltValueworkbookSpinCount 以及 revisionsAlgorithmNamerevisionsHashValuerevisionsSaltValuerevisionsSpinCount

文件共享

推荐以只读模式打开,并记录文件被谁打开:

{
  "fileSharing": {
    "readOnlyRecommended": true,
    "userName": "John"
  },
  "worksheets": [
    {
      "name": "Data",
      "rows": [{ "cells": [{ "value": "Shared file" }] }]
    }
  ]
}

文件共享选项

选项类型说明
readOnlyRecommendedboolean推荐只读模式
userNamestring锁定文件的用户名
reservationPasswordstring明文预留密码(自动计算哈希)
algorithmNamestring现代加密的哈希算法
hashValuestringBase64 编码的密码哈希
saltValuestringBase64 编码的盐值
spinCountnumber哈希迭代次数
Copyright © 2026