更新时间:2025-08-28 GMT+08:00
在华为云Astro轻应用中,如何解析OBS桶中的csv/Excel文件?
问题描述
OBS桶中上传了一些csv或Excel格式的文件,在华为云Astro轻应用中开发应用时需要使用上述文件中的数据,该如何进行解析呢?例如,OBS桶中,上传了一个供应商名单Excel表格,需要将表格中数据解析到华为云Astro轻应用中。
图1 供应商名单

解决方法
- 参考对接OBS云对象存储实例中操作,将OBS桶对接到华为云Astro轻应用中。
- 通过脚本获取Excel文件并解析,即通过调用OBS连接器获取Excel文件,同时调用Excel API解析Excel文件内容。
- 在应用设计器的左侧导航栏中,选择“逻辑”,再单击脚本后的“+”。
- 输入脚本的名称(如ScriptTest),单击添加,创建一个空白脚本。
- 在脚本编辑器中,将以下脚本代码粘贴到代码编辑区。
import * as excel from 'excel'; import * as objectstorage from 'objectstorage'; let ObsCli = objectstorage.newClient(objectstorage.StoreType.OBS, "命名空间__obs", "test"); // 连接器名称+桶名 let data = ObsCli.getObject("供应商名单.xlsx“”");//文件名 let x = excel.decodeAll(data); console.log(x);
其中,“命名空间__obs”、“test”和“供应商名单.xlsx”为1中创建OBS连接器时,设置的连接器名称、OBS桶名称和桶中待解析的Excel文件名。
- 单击页面上方的
,保存脚本。
- 保存成功后,单击编辑器上方的
,执行脚本。
- 在页面底部单击测试窗口右上角的
,返回消息头信息。
在“日志”页签中,可查看到内容已成功解析。
0814 09:25:43.931|debug|vm[1]>>> Build #AppCube Core 25.7.0 amd64 Built on 2025-08-07 19:44:28 Commit #d7cfcf8bbe 0814 09:25:43.933|debug|vm[1]>>> node: 11 0814 09:25:43.934|debug|vm[1]>>> js version: 2.0 0814 09:25:43.935|debug|vm[1]>>> log level: debug 0814 09:25:43.936|debug|vm[1]>>> script: 命名空间__ScriptTest__1.0.1 0814 09:25:43.936|debug|vm[1]>>> locale: zh_CN 0814 09:25:43.937|debug|vm[1]>>> os timezone: Local 0814 09:25:43.938|debug|vm[1]>>> user timezone: Local 0814 09:25:43.939|debug|vm[1]>>> organization timezone: (GMT+08:00) China Standard Time (Asia/Shanghai) 0814 09:25:44.158|debug|vm[1]>>> { 供应商名单: [["公司名称", "公司类型", "成立日期", "采购专员", "考核状态", "供应商等级" ], ["A公司", "外资独资", "1964-01-01", "何先生", "考核中", "金牌" ], ["B公司", "上市公司", "1968-07-18", "郭先生", "考核完成", "金牌" ], ["C公司", "股份有限", "2006-08-22", "毛女士", "开始考核", "金牌" ], ["D公司", "上市公司", "1984-01-01", "李先生", "考核中", "金牌" ], ["E公司", "股份有限", "1995-01-01", "赵女士", "考核完成", "金牌" ], ["F公司", "股份有限", "1995-03-21", "赵女士", "考核完成", "金牌" ], ["G公司", "股份有限", "1993-03-01", "王女士", "考核完成", "优秀" ], ["H公司", "台资民营", "1974-02-20", "吴先生", "开始考核", "金牌" ], ["I公司", "股份有限", "1995-04-03", "杨女士", "考核完成", "金牌" ], ["G公司", "上市公司", "1996-01-01", "李女士", "考核中", "最佳" ] ] , 导入规则说明及示例: [["单选用户", "日期时间", "日期", "多选", "单选", "电话", "URL", "邮箱", "百分比", "金额", "数值", "多行文本", "单行文本", "表单字段类型" ], ["a00123456", "2000-01-01 12:00:00", "2000-01-01", "选项1,选项2,选项3", "选项1", "1333**333", "https://example.com", "example@***.com", "50%", "100", "100.123456789", "多行文本,多行文本,多行文本示例", "单行文本示例", "格式规范示例" ], ["填写W3账号(带字母)", "", "", "将该列不同的值作为多项选择,不同选项间需用英文字符","隔开", "将该列不同的值作为单项选择", "填写中国大陆地区手机号", "填写标准的URL格式", "填写标准的邮箱格式", "需要填写百分比符号", "", "", "", "", "格式规范说明" ] ] } (AppTestSpace__test1:8) 0814 09:25:44.159|debug|vm[1]>>> vm memory usage -- malloc limit: 67108864, peek allocated: 284224 NAME COUNT SIZE memory allocated 1998 175264 (87.7 per block) memory used 2103 139182 (8 overhead, 17.2 average slack) atoms 862 32512 (37.7 per atom) strings 4 79 (19.8 per string) objects 350 25200 (72.0 per object) properties 1538 26912 (4.4 per object) shapes 78 18152 (232.7 per shape) bytecode functions 129 23054 bytecode 129 6321 (49.0 per function) pc2line 116 504 (4.3 per function) C functions 151 arrays 3 fast arrays 3 elements 0 0 (0.0 per fast array) binary objects 4 16564 0814 09:25:44.160|debug|vm[1]>>> sys resource usage NAME LIMIT SIZE RequestSOQLQueriesAmount 100 0 RequestSOQLRowsAmount 100000 0 RequestSOSLQueriesAmount 20 0 RequestSOSLRowsAmount 50000 0 RequestDMLStatementsAmount 150 0 RequestDMLRowsAmount 10000 0 RequestCallOutsAmount 10 0 RequestEmailSendsAmount 10 0 RequestEventSendsAmount 50 0 0814 09:25:44.161|info|vm[1]>>> release vm[1], last file: 命名空间__ScriptTest, elapse time 230.752169ms, load module time 96.149µs, read file time 1.65µs load module metrics: module name read file time run code time sum load time tree child modules ----------------- ----------------- ----------------- ----------------- ----------------- excel 910ns 39.769µs 40.679µs [] objectstorage 740ns 54.73µs 55.47µs []
- 脚本测试完成后,单击页面上方的
,启用该脚本。
父主题: 应用后端开发