文档首页/ 华为云Astro轻应用/ 常见问题/ 应用后端开发/ 在华为云Astro轻应用中,如何解析OBS桶中的csv/Excel文件?
更新时间:2025-08-28 GMT+08:00

在华为云Astro轻应用中,如何解析OBS桶中的csv/Excel文件?

问题描述

OBS桶中上传了一些csv或Excel格式的文件,在华为云Astro轻应用中开发应用时需要使用上述文件中的数据,该如何进行解析呢?例如,OBS桶中,上传了一个供应商名单Excel表格,需要将表格中数据解析到华为云Astro轻应用中。

图1 供应商名单

解决方法

  1. 参考对接OBS云对象存储实例中操作,将OBS桶对接到华为云Astro轻应用中。
  2. 通过脚本获取Excel文件并解析,即通过调用OBS连接器获取Excel文件,同时调用Excel API解析Excel文件内容。

    1. 在应用设计器的左侧导航栏中,选择“逻辑”,再单击脚本后的“+”
    2. 输入脚本的名称(如ScriptTest),单击添加,创建一个空白脚本。
    3. 在脚本编辑器中,将以下脚本代码粘贴到代码编辑区。
      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文件名。

    4. 单击页面上方的,保存脚本。
    5. 保存成功后,单击编辑器上方的,执行脚本。
    6. 在页面底部单击测试窗口右上角的,返回消息头信息。

      “日志”页签中,可查看到内容已成功解析。

      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         []          
    7. 脚本测试完成后,单击页面上方的,启用该脚本。