求教,如何通过数据表名称获取某一行记录的图片url进行文字识别?

根据WPS开发平台案例,批量将获取的图片url进行文字识别的代码如下:

const access_token="24.b845890294a2d99b4ddfbcc6a2611367.2592000.1758292780.282335-119814960"

function main() {
    const view = Application.ActiveSheet.Views(1)
    const count = view.RecordRange.Count
    // 获取所有记录的图片附件值
    const attachments =  view.RecordRange('1:'+count, ["@图片和附件"]).Value
    // console.log(attachments)
    // 获取对应的url
    const urls = []
    let attachment = []
    // 这里的attachments是一个二维数组
    for(let i=0;i<attachments.length;i++){
        urls[i] = []
        attachment = attachments[i][0].Value
        for(let j = 0;j<attachment.length;j++){
          urls[i].push(attachment[j].LinkUrl || null)
        }
    }
    // console.log(urls)
    let words = []
    let url = []
    for(let i=0;i<urls.length;i++){
      url = urls[i]
      if(url){
        words[i] = [getText(url)]
      }else{
        words[i] = ['']
      }
      // console.log(words[i])
    }
    // console.log(recordIds,words)
    // 赋值到对应的 ‘识别文字’ 这一栏
    view.RecordRange('1:'+count,["@识别文字"]).Value = words
}
// 调用接口把所有的url转换为文字
function getText(urls){
    const word = urls.reduce((word,url)=>{
      // console.log('调用1次')
        let resp = HTTP.fetch('https://aip.baidubce.com/rest/2.0/ocr/v1/accurate_basic?access_token='+access_token,{
                method:"POST",
                timeout:2000,
                headers:{
                  'Content-Type': 'application/x-www-form-urlencoded',
                  'Accept': 'application/json',
                  'Authorization': access_token
            },
                body: `url=${encodeURIComponent(url)}`
            })
        if(resp.status !== 200){
           throw new Error("fetch err! status is "+resp.status)
        }
        return word + resp.text()
    },'')
    return word
}
main()

在上述代码基础上,怎么修改,通过数据表名称获取某一行记录的图片url进行文字识别?

广东省
浏览 255
收藏
2
分享
2 +1
4
+1
全部评论 4
 
wils
wils

创作者俱乐部成员

有两处'1:'+count,都直接改成一个行号试试吧
· 海南省
回复
杨祖余
改了,还是不行,会不会是 下面这段代码的问题 // 这里的attachments是一个二维数组 for(let i=0;i<attachments.length;i++){ urls[i] = [] attachment = attachments[i][0].Value for(let j = 0;j<attachment.length;j++){ urls[i].push(attachment[j].LinkUrl || null) } }
· 广东省
回复