用wps宏联系百度ocr将图片中的时间识别,填写到表格中对应的位置。
实现这个功能可以分为以下几个步骤:
```javascript
https://github.com/netpi/baidu-ocr-api
2. 打开表格并定位到对应的位置:可以使用WPS VBA代码来打开表格,并定位到对应的位置。具体实现可以参考WPS VBA的官方文档和示例代码。?%ra=card
Sub InsertPicture()
Dim wb As Workbook
Dim ws As Worksheet
Dim filePath As String
Dim picPath As String
Dim picWidth As Integer
Dim picHeight As Integer
Dim picLeft As Integer
Dim picTop As Integer
'指定表格文件路径
filePath = "C:\Users\Administrator\Desktop\example.xlsx"
'指定图片文件路径
picPath = "C:\Users\Administrator\Desktop\example.jpg"
'指定图片位置和大小
picWidth = 200
picHeight = 150
picLeft = 100
picTop = 100
'打开表格文件
Set wb = Workbooks.Open(filePath)
'选择要插入图片的工作表
Set ws = wb.Worksheets("Sheet1")
'插入图片
ws.Shapes.AddPicture picPath, msoFalse, msoTrue, picLeft, picTop, picWidth, picHeight
'关闭表格文件
wb.Close SaveChanges:=True
End Sub
```
3. 将时间信息填写到表格中:在定位到对应的位置后,可以使用WPS VBA代码将时间信息填写到表格中。具体实现可以参考WPS VBA的官方文档和示例代码。
需要注意的是,在使用百度OCR API时,需要注意保护用户隐私和数据安全,不要将敏感信息上传到云端。另外,在使用WPS VBA时,需要注意代码的安全性和稳定性,避免出现意外错误或者数据丢失。
要在WPS中使用JavaScript宏,并结合百度OCR将图片中的时间识别并填写到表格中对应的位置,可以按照以下步骤进行:
准备工作:
在百度AI开放平台上注册账号并创建一个应用,获取到API Key和Secret Key,用于访问百度OCR接口。
安装并打开WPS,创建一个新的表格文件,并在需要填写时间的位置预留单元格。
编写JavaScript宏:
在WPS的菜单栏中,选择“开发” -> “宏” -> “编辑”来打开JavaScript宏编辑器。
在编辑器中编写以下代码,该代码将使用百度OCR识别图片中的时间并填写到指定的单元格。
function recognizeTimeFromImage() {
// 1. 在这里填写你的百度OCR API Key和Secret Key
var apiKey = "YOUR_API_KEY";
var secretKey = "YOUR_SECRET_KEY";
// 2. 在这里填写图片文件的路径
var imagePath = "YOUR_IMAGE_PATH";
// 3. 在这里填写表格中需要填写时间的单元格位置,例如A1单元格
var targetCell = "A1";
// 调用百度OCR接口识别图片中的时间
var accessTokenUrl = "https://aip.baidubce.com/oauth/2.0/token?grant_type=client_credentials&client_id=" + apiKey + "&client_secret=" + secretKey;
var response = UrlFetchApp.fetch(accessTokenUrl);
var accessToken = JSON.parse(response).access_token;
var ocrUrl = "https://aip.baidubce.com/rest/2.0/ocr/v1/general_basic?access_token=" + accessToken;
var image = UrlFetchApp.fetch(imagePath).getContent();
var payload = {
method: "post",
contentType: "application/x-www-form-urlencoded",
payload: {
image: Utilities.base64Encode(image)
}
};
var ocrResponse = UrlFetchApp.fetch(ocrUrl, payload);
var ocrResult = JSON.parse(ocrResponse).words_result;
// 在指定单元格填写识别到的时间
var sheet = SpreadsheetApp.getActiveSpreadsheet().getActiveSheet();
sheet.getRange(targetCell).setValue(ocrResult);
}
在代码中的注释部分,按照指示填写你的百度OCR API Key、Secret Key、图片文件路径以及需要填写时间的目标单元格位置。
运行JavaScript宏:
在编辑器中,点击“运行” -> “运行函数”来运行recognizeTimeFromImage函数。
这将触发代码执行,使用百度OCR识别图片中的时间并将其填写到指定的单元格中。
WPS中JS宏简单运用
可以参考下
https://blog.csdn.net/brhhh_sehe/article/details/123054606
参考AI和题意思路:
1、加载图片:在WPS中打开需要识别的图片,可以使用WPS的图片工具将图片插入到文档中。
2、创建文本框:在文档中插入一个文本框,用于输入识别结果。
3、编写JS宏代码:在WPS中创建一个宏,并在代码编辑器中编写以下代码:
function recognizeTime() {
// 获取当前选中的文本框
var textBox = wpsApp.activeDocument.getCursor().getParentTextbox();
// 获取图片对象
var image = textBox.getParagraph(0).getRun(0).getEmbeddedObject();
// 创建OCR识别对象
var ocr = new wpsApp.OCR();
// 设置OCR识别的区域
var识别的区域= ocr.get识别区域fromEmbeddedObject(image);
// 调用OCR识别时间函数
var识别结果= ocr.recognizeTime(识别的区域);
// 将识别结果输入到文本框中
textBox.getParagraph(0).getRun(0).setText(识别结果);
}
4、调用宏代码:在WPS中调用宏代码,运行“recognizeTime”函数,即可实现将图片中的时间识别输入到文本框中。
下面是WPS JavaScript宏调用百度OCR的示例:
// 引入了 Node.js 的 http 模块
const http = require('http')
// 定义百度 OCR API 基础 URL 和 API Key
const ocrBaseUrl = 'https://aip.baidubce.com/rest/2.0/ocr/v1/general_basic'
const apiKey = 'your_api_key_here'
function ocrImage() {
// 定义 WPS 文档对象和图片对象
const doc = WPS.Application.ActiveDocument
const pic = doc.Shapes.Item(1)
// 调用百度 OCR API
const req = http.request(`${ocrBaseUrl}?access_token=${apiKey}`, {
method: 'POST',
headers: {
'Content-Type': 'application/x-www-form-urlencoded'
}
}, res => {
const chunks = []
res.on('data', chunk => chunks.push(chunk))
res.on('end', () => {
const result = JSON.parse(Buffer.concat(chunks).toString())
// 将识别结果插入到文档中
doc.Range(pic.TextFrame.TextRange.End - 1, pic.TextFrame.TextRange.End).Text = result.words_result.map(item => item.words).join('\n')
})
})
// 发送图片数据到百度 OCR API
req.write(pic.ImageData)
req.end()
}
// 在 WPS 的“项目”菜单中添加“OCR”菜单项,并指定点击时调用 ocrImage() 函数
const ocrMenuItem = WPS.Application.CommandBars.FindControl(1, 326, false, false)
const ocrButton = ocrMenuItem.Controls.Add(1)
ocrButton.Caption = 'OCR'
ocrButton.OnAction = ocrImage
可以试试python调用百度OCR,在生成word,使用python要方便些
WPS中JS宏简单运用
非常详细,可以学习下’
http://www.360doc.com/content/22/0608/15/3046928_1035174360.shtml
前言
创作不易,如有帮助给个采纳
操作步骤
安装百度 OCR SDK,并在 WPS 中设置 Macro,然后可以按照以下步骤创建一个 Macro。
Sub GetTimeFromImage()
Dim img As Object
Set img = CreateObject("new:{ABD5A166-9F70-11d4-90E8-D5ACAEFC95C6}")
' 获取剪贴板中的图片
img.GetFromClipboard
' 使用百度OCR 识别图片中的内容
Dim ocr As Object
Set ocr = CreateObject("BaiduOcrSdk.BaiduOcr")
ocr.Init "您的 API Key", "您的 Secret Key"
' 设置识别参数
Dim param As Object
Set param = CreateObject("BaiduOcrSdk.Params")
param.SetOptions "language_type=CHN_ENG, detect_direction=true, detect_language=false,
probability=false, recognize_granularity=big, vertexes_location=false,
accuracy=normal, detect_angle=false"
' 识别图片
Dim result As Object
Set result = ocr.RecognizeByStream(img.Image, param)
' 解析结果
Dim timeStr As String
timeStr = ParseTime(result)
' 将时间填写到表格中对应的位置
Set cell = ThisWorkbook.Sheets(1).Range("A1")
cell.Value = timeStr
End Sub
' 从百度 OCR 的返回结果中获取时间字符串
Function ParseTime(result As Object) As String
Dim words As Object, word As Object
Set words = result("words_result")
For Each word In words
If InStr(word("words"), "时间") > 0 Then
' 这里假定时间的格式为“HH:MM:SS”的形式
ParseTime = Mid(word("words"), InStr(word("words"), "时间") + 2, 8)
Exit Function
End If
Next
End Function
需要注意的是,使用百度 OCR SDK 是需要付费的,具体价格和申请方式可以参考百度 OCR 官网。
我想看看各位GPT专家如何用宏访问百度api,这我真的不会