API (Excel to JSON by HTTPS POST request)
WTSolutions的Excel转JSON是一系列工具,可将Excel转换为JSON,支持转换为扁平结构和嵌套结构JSON。它提供了"Excel转JSON"的全场景解决方案,包括Excel加载项、Web应用、开放API和企业级MCP工具:
网络版方案
API:通过HTTPS POST请求转换Excel到JSON。 (<-- 您当前所在位置。)
本地版方案
请求
需要HTTPS POST请求工具,如Postman、Curl、Python Requests、Javascript fetch等。智能体平台如coze。 确保通过设置CORS头来正确处理跨域问题。
访问方式
向访问点 https://mcp.wtsolutions.cn/excel-to-json-api 发送POST请求,并包含使用部分中描述的必要参数。
使用方法
请求格式
API接受包含以下参数之一的application/json格式的POST请求:
参数 |
类型 |
是否必填 |
描述 |
|---|---|---|---|
data |
字符串 |
否 |
制表符分隔或逗号分隔的文本数据,至少包含两行(标题行+数据行)。必须提供'data'或'url'中的一个 |
url |
字符串 |
否 |
指向Excel或CSV文件的URL。必须提供'data'或'url'中的一个 |
options |
对象 |
是 |
用于自定义转换过程的配置对象 |
注意:
请提供
data或url中的一个,不要同时提供。如果您想使用自定义转换设置,则
options是必需的。如果您想使用专业版,则需要提供有效的Pro Code,可以享受无限制的数据转换。
对data和url的要求
发送data时:
输入数据必须是制表符分隔(Excel)或逗号分隔(CSV)的文本,至少包含两行(标题行+数据行)或两列(标题列+数据列),具体取决于options参数中的"header"设置。
第一行或第一列将被视为"标题"行/列,API将使用它作为列名,即JSON键。
后续行或列将被视为"数据"行/列,API将把它们视为JSON值。
发送url时:
Excel文件的每个工作表应至少包含两行或两列(标题行/列+数据行/列)。
第一行或第一列将被视为"标题"行/列,API将使用它作为列名,即JSON键。
后续行或列将被视为"数据"行/列,API将把它们视为JSON值。
此Excel文件应为'.xlsx'格式。
Excel文件的每个工作表将被转换为一个JSON对象。
每个JSON对象将具有'sheetName'(字符串)和'data'属性。
'data'数组中的每个JSON对象将具有与标题名称对应的属性。
'data'数组中的每个JSON对象将具有与单元格值对应的值。
选项对象
可选的options对象可以包含以下属性:
属性 |
类型 |
默认值 |
描述 |
|---|---|---|---|
字符串 |
"" |
用于使用专业版,需要有效的Excel转JSON服务订阅。proCode可以通过options中参数传递,也可以在https请求头中传递proCode。 |
|
字符串 |
"flat" |
JSON输出的格式模式:"nested"(嵌套)或"flat"(扁平) |
|
字符串 |
"row" |
指定使用哪一行/列作为标题:"row"(第一行)或"column"(第一列) |
|
字符串 |
"." |
当使用 |
|
字符串 |
"emptyString" |
空单元格的处理方式:"emptyString"(空字符串)、"null"(空值)或"exclude"(排除) |
|
字符串 |
"trueFalse" |
布尔值的格式:"trueFalse"(true/false)、"10"(1/0)或"string"(字符串) |
|
字符串 |
"arrayOfObject" |
JSON输出的整体格式:"arrayOfObject"(对象数组)或"2DArray"(二维数组) |
|
字符串 |
"array" |
当结果只有一个对象时的格式:"array"(保持为数组)或"object"(返回为单个对象) |
注意:
proCode可以在options中参数传递,也可以在https请求头中传递proCode。
delimiter仅在jsonMode为"nested"时有效。
singleObjectFormat仅在jsonFormat为"arrayOfObject"时有效。
jsonFormat为"2DArray"仅在jsonMode为"flat"时有效。
proCode不是必需的,如果没有提供proCode,最多转换6行数据。详细的转换规则可以在转换设置中找到。
响应格式
API返回具有以下结构的JSON对象:
字段 |
类型 |
描述 |
|---|---|---|
isError |
布尔值 |
指示处理请求时是否出错 |
msg |
字符串 |
'success'或错误描述 |
data |
字符串 |
如果使用URL,则为工作表对象数组;如果使用直接数据,则为字符串;如果出错,则为空字符串。 |
示例
使用'data'的请求示例
原始数据:
id |
student.name |
student.familyname |
student.age |
|---|---|---|---|
1 |
Meimei |
Han |
12 |
2 |
Lily |
Jaskson |
15 |
3 |
Elon |
Mask |
18 |
请求1:
{
"data": "id\tstudent.name\tstudent.familyname\tstudent.age\n1\tMeimei\tHan\t12\n2\tLily\tJaskson\t15\n3\tElon\tMask\t18",
"options": {
"proCode": "proCode(please input your proCode)",
"jsonMode": "nested",
"delimiter": "."
}
}
响应1:
{
"isError": false,
"msg": "success",
"data": "[{\"id\":1,\"student\":{\"name\":\"Meimei\",\"familyname\":\"Han\",\"age\":12}},{\"id\":2,\"student\":{\"name\":\"Lily\",\"familyname\":\"Jaskson\",\"age\":15}},{\"id\":3,\"student\":{\"name\":\"Elon\",\"familyname\":\"Mask\",\"age\":18}}]"
}
请求2:
{
"data": "id\tstudent.name\tstudent.familyname\tstudent.age\n1\tMeimei\tHan\t12\n2\tLily\tJaskson\t15\n3\tElon\tMask\t18",
"options": {
"proCode": "proCode(please input your proCode)",
"jsonMode": "flat",
"jsonFormat": "2DArray"
}
}
响应2:
{
"isError": false,
"msg": "success",
"data": "[[\"id\",\"student.name\",\"student.familyname\",\"student.age\"],[1,\"Meimei\",\"Han\",12],[2,\"Lily\",\"Jaskson\",15],[3,\"Elon\",\"Mask\",18]]"
}
使用'url'的成功响应示例(多工作表Excel)
Sheet1中的原始Excel数据:
Name |
Age |
IsStudent |
|---|---|---|
John Doe |
25 |
false |
Jane Smith |
30 |
true |
Sheet2中的原始Excel数据:
ID |
Value |
|---|---|
1 |
Example |
请求:
{
"url": "https://tools.wtsolutions.cn/example.xlsx",
"options": {
"proCode": "proCode(please input your proCode)",
"booleanFormat": "10",
"jsonFormat": "arrayOfObject",
"singleObjectFormat": "object"
}
}
响应:
{
"isError": false,
"msg": "success",
"data": "[{\"sheetName\":\"Sheet1\",\"data\":[{\"Name\":\"John Doe\",\"Age\":25,\"IsStudent\":0},{\"Name\":\"Jane Smith\",\"Age\":30,\"IsStudent\":1}]},{\"sheetName\":\"Sheet2\",\"data\":{\"ID\":1,\"Value\":\"Example\"}}]"
}
错误响应示例
{
"isError": true,
"msg": "Excel数据至少需要2行",
"data": ""
}
数据类型处理
此API的标准方式会自动检测并转换不同的数据类型,而在专业方式中,用户可以通过在请求体中提供'options'对象来自定义转换规则。
数字:转换为数值
布尔值:识别'true'/'false'(不区分大小写)并转换为布尔值
日期:检测各种日期格式并适当转换
字符串:视为字符串值
空值:表示为空字符串
错误处理
API针对常见问题返回描述性错误消息:
Excel Data Format Invalid:当输入数据不是制表符分隔或逗号分隔时At least 2 rows are required:当输入数据少于2行时Both data and url received:当同时提供'data'和'url'参数时Network Error when fetching file:从提供的URL下载文件时出错File not found:找不到提供的URL上的文件Blank/Null/Empty cells in the first row not allowed:当标题行包含空单元格时Server Internal Error:发生意外错误时Max 6 rows handled, upgrade to Pro to handle more rows:当未提供有效专业代码时,最多处理6行数据, 可升级至专业版处理更多数据。
使用视频
本视频展示的是在agents智能体平台coze上,利用本api创作的插件和智能体的使用。