Skip to content
Projects
Groups
Snippets
Help
Loading...
Help
Contribute to GitLab
Sign in / Register
Toggle navigation
Y
yifu-mvp
Project
Project
Details
Activity
Cycle Analytics
Repository
Repository
Files
Commits
Branches
Tags
Contributors
Graph
Compare
Charts
Issues
0
Issues
0
List
Board
Labels
Milestones
Merge Requests
0
Merge Requests
0
CI / CD
CI / CD
Pipelines
Jobs
Schedules
Charts
Wiki
Wiki
Snippets
Snippets
Members
Members
Collapse sidebar
Close sidebar
Activity
Graph
Charts
Create a new issue
Jobs
Commits
Issue Boards
Open sidebar
fangxinjiang
yifu-mvp
Commits
f1bfa49b
Commit
f1bfa49b
authored
Oct 23, 2025
by
fangxinjiang
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
企微智能表格开发(目前只支持文本数据查询,具体格式未开发)-fxj
parent
4666f8de
Hide whitespace changes
Inline
Side-by-side
Showing
4 changed files
with
7 additions
and
585 deletions
+7
-585
QwExcelApiServiceImpl.java
...lus/v1/ekp/service/impl/QwExce/QwExcelApiServiceImpl.java
+7
-9
WeComSheetFieldFetcher.java
...m/yifu/cloud/plus/v1/ekp/util/WeComSheetFieldFetcher.java
+0
-171
WeComSheetIdFetcher.java
.../com/yifu/cloud/plus/v1/ekp/util/WeComSheetIdFetcher.java
+0
-211
WeComSmartSheetDataInserter.java
...u/cloud/plus/v1/ekp/util/WeComSmartSheetDataInserter.java
+0
-194
No files found.
yifu-ekp/yifu-ekp-biz/src/main/java/com/yifu/cloud/plus/v1/ekp/service/impl/QwExce/QwExcelApiServiceImpl.java
View file @
f1bfa49b
...
...
@@ -55,20 +55,17 @@ public class QwExcelApiServiceImpl extends ServiceImpl<QwExcelApiMapper, EkpInvo
String
[]
monthRange
=
null
;
List
<
Map
<
String
,
Object
>>
records
=
new
ArrayList
<>();
List
<
Map
<
String
,
Object
>>
tempRecords
=
null
;
int
totalInserted
=
0
;
// 记录已插入的总数据量
int
totalInserted
=
0
;
// 记录sheet已插入的总数据量
int
totalInsertedSum
=
0
;
// 记录已插入的总数据量
int
sheetIndex
=
0
;
// 当前使用的sheetId索引
sheetId
=
sheetIds
[
sheetIndex
];
// 初始化使用第一个sheetId
//List<String> strings = new ArrayList<>();
//strings.add("FeiTaiLang_Fang");
//strings.add("ZhangQianQian");
//weComSmartSheetManager.addSheet(accessToken,docId,"合同基础信息表");
log
.
info
(
"微信智能表格发票数据删除开始..."
);
weComSmartSheetManager
.
deleteAllRows
(
accessToken
,
docId
,
sheetId
);
log
.
info
(
"微信智能表格发票数据删除完成"
);
log
.
info
(
"微信智能表格发票数据插入开始..."
);
//获取最近24个月的发票信息,按月去插入到智能表格中
for
(
int
i
=
0
;
i
<
2
4
;
i
++){
for
(
int
i
=
0
;
i
<
2
5
;
i
++){
monthRange
=
MonthCalculationUtils
.
calculateMonthRange
(
i
);
if
(
null
!=
monthRange
&&
monthRange
.
length
==
CommonConstants
.
dingleDigitIntArray
[
2
]){
records
=
baseMapper
.
selectInvoiceList
(
monthRange
[
0
],
monthRange
[
1
]);
...
...
@@ -105,13 +102,14 @@ public class QwExcelApiServiceImpl extends ServiceImpl<QwExcelApiMapper, EkpInvo
debugService
.
debugInsertIssueAsso
(
accessToken
,
tempRecords
,
docId
,
sheetId
);
totalInserted
+=
tempRecords
.
size
();
totalInsertedSum
+=
tempRecords
.
size
();
}
}
}
log
.
info
(
"微信智能表格发票数据插入完成,总共插入记录数: "
+
totalInserted
);
log
.
info
(
"微信智能表格发票数据插入完成,总共插入记录数: "
+
totalInserted
Sum
);
//智能表格合同数据表ID
/*
sheetId = "EuVt8X";
sheetId
=
"EuVt8X"
;
log
.
info
(
"微信智能表格合同数据删除开始..."
);
weComSmartSheetManager
.
deleteAllRows
(
accessToken
,
docId
,
sheetId
);
log
.
info
(
"微信智能表格合同数据删除完成"
);
...
...
@@ -135,7 +133,7 @@ public class QwExcelApiServiceImpl extends ServiceImpl<QwExcelApiMapper, EkpInvo
}
}
log.info("微信智能表格合同数据插入完成
");*/
log
.
info
(
"微信智能表格合同数据插入完成
,总共插入记录数: "
+
contractCount
);
}
}
\ No newline at end of file
yifu-ekp/yifu-ekp-biz/src/main/java/com/yifu/cloud/plus/v1/ekp/util/WeComSheetFieldFetcher.java
deleted
100644 → 0
View file @
4666f8de
package
com
.
yifu
.
cloud
.
plus
.
v1
.
ekp
.
util
;
import
com.alibaba.fastjson.JSON
;
import
com.alibaba.fastjson.JSONArray
;
import
com.alibaba.fastjson.JSONObject
;
import
org.springframework.http.*
;
import
org.springframework.stereotype.Component
;
import
org.springframework.web.client.RestTemplate
;
import
java.util.ArrayList
;
import
java.util.List
;
/**
* 企业微信智能表格字段信息获取工具类
* 用于获取智能表格的字段信息,帮助诊断"字段不存在"错误
*/
@Component
public
class
WeComSheetFieldFetcher
{
/**
* 企业微信API基础URL
*/
private
static
final
String
WE_COM_API_BASE_URL
=
"https://qyapi.weixin.qq.com/cgi-bin"
;
/**
* 获取access_token的接口路径
*/
private
static
final
String
GET_TOKEN_PATH
=
"/gettoken"
;
/**
* 获取智能表格字段信息的接口路径
*/
private
static
final
String
GET_FIELDS_PATH
=
"/wedoc/smartsheet/get_fields"
;
/**
* 获取智能表格字段信息
*
* @param corpId 企业ID
* @param corpSecret 应用的密钥
* @param docId 文档ID
* @param sheetId 工作表ID
* @return 字段信息列表
*/
public
List
<
FieldInfo
>
getSheetFields
(
String
corpId
,
String
corpSecret
,
String
docId
,
String
sheetId
)
{
List
<
FieldInfo
>
fieldInfos
=
new
ArrayList
<>();
try
{
// 1. 获取access_token
String
accessToken
=
getAccessToken
(
corpId
,
corpSecret
);
if
(
accessToken
==
null
||
accessToken
.
isEmpty
())
{
System
.
err
.
println
(
"获取access_token失败"
);
return
fieldInfos
;
}
// 2. 获取字段信息
fieldInfos
=
fetchFields
(
accessToken
,
docId
,
sheetId
);
}
catch
(
Exception
e
)
{
System
.
err
.
println
(
"获取表格字段信息时发生异常: "
+
e
.
getMessage
());
e
.
printStackTrace
();
}
return
fieldInfos
;
}
/**
* 获取企业微信access_token
*
* @param corpId 企业ID
* @param corpSecret 应用密钥
* @return access_token
*/
private
String
getAccessToken
(
String
corpId
,
String
corpSecret
)
{
try
{
String
url
=
WE_COM_API_BASE_URL
+
GET_TOKEN_PATH
+
"?corpid="
+
corpId
+
"&corpsecret="
+
corpSecret
;
RestTemplate
restTemplate
=
new
RestTemplate
();
ResponseEntity
<
String
>
response
=
restTemplate
.
getForEntity
(
url
,
String
.
class
);
if
(
response
.
getStatusCode
()
==
HttpStatus
.
OK
)
{
JSONObject
jsonObject
=
JSON
.
parseObject
(
response
.
getBody
());
if
(
jsonObject
.
getInteger
(
"errcode"
)
==
0
)
{
return
jsonObject
.
getString
(
"access_token"
);
}
else
{
System
.
err
.
println
(
"获取access_token失败,错误代码:"
+
jsonObject
.
getInteger
(
"errcode"
)
+
",错误信息:"
+
jsonObject
.
getString
(
"errmsg"
));
return
null
;
}
}
}
catch
(
Exception
e
)
{
System
.
err
.
println
(
"获取access_token时发生异常: "
+
e
.
getMessage
());
e
.
printStackTrace
();
}
return
null
;
}
/**
* 获取字段信息
*
* @param accessToken 访问令牌
* @param docId 文档ID
* @param sheetId 工作表ID
* @return 字段信息列表
*/
private
List
<
FieldInfo
>
fetchFields
(
String
accessToken
,
String
docId
,
String
sheetId
)
{
List
<
FieldInfo
>
fieldInfos
=
new
ArrayList
<>();
try
{
String
url
=
WE_COM_API_BASE_URL
+
GET_FIELDS_PATH
+
"?access_token="
+
accessToken
;
RestTemplate
restTemplate
=
new
RestTemplate
();
// 构造请求体
JSONObject
requestBody
=
new
JSONObject
();
requestBody
.
put
(
"docid"
,
docId
);
requestBody
.
put
(
"sheet_id"
,
sheetId
);
HttpHeaders
headers
=
new
HttpHeaders
();
headers
.
setContentType
(
MediaType
.
APPLICATION_JSON
);
HttpEntity
<
String
>
request
=
new
HttpEntity
<>(
requestBody
.
toJSONString
(),
headers
);
ResponseEntity
<
String
>
response
=
restTemplate
.
postForEntity
(
url
,
request
,
String
.
class
);
if
(
response
.
getStatusCode
()
==
HttpStatus
.
OK
)
{
JSONObject
jsonObject
=
JSON
.
parseObject
(
response
.
getBody
());
if
(
jsonObject
.
getInteger
(
"errcode"
)
==
0
)
{
JSONArray
fields
=
jsonObject
.
getJSONArray
(
"fields"
);
if
(
fields
!=
null
&&
!
fields
.
isEmpty
())
{
for
(
int
i
=
0
;
i
<
fields
.
size
();
i
++)
{
JSONObject
field
=
fields
.
getJSONObject
(
i
);
FieldInfo
fieldInfo
=
new
FieldInfo
();
fieldInfo
.
setFieldId
(
field
.
getString
(
"field_id"
));
fieldInfo
.
setTitle
(
field
.
getString
(
"title"
));
fieldInfo
.
setType
(
field
.
getString
(
"type"
));
fieldInfos
.
add
(
fieldInfo
);
}
}
}
else
{
System
.
err
.
println
(
"获取字段信息失败,错误代码:"
+
jsonObject
.
getInteger
(
"errcode"
)
+
",错误信息:"
+
jsonObject
.
getString
(
"errmsg"
));
}
}
}
catch
(
Exception
e
)
{
System
.
err
.
println
(
"获取字段信息时发生异常: "
+
e
.
getMessage
());
e
.
printStackTrace
();
}
return
fieldInfos
;
}
/**
* 使用示例
*
* @param args 命令行参数
*/
public
static
void
main
(
String
[]
args
)
{
WeComSheetFieldFetcher
fetcher
=
new
WeComSheetFieldFetcher
();
// 示例数据
String
corpId
=
"your_corp_id"
;
String
corpSecret
=
"your_corp_secret"
;
String
docId
=
"your_doc_id"
;
String
sheetId
=
"your_sheet_id"
;
// 获取字段信息列表
List
<
FieldInfo
>
fields
=
fetcher
.
getSheetFields
(
corpId
,
corpSecret
,
docId
,
sheetId
);
System
.
out
.
println
(
"获取到的字段信息列表: "
+
fields
);
// 打印每个字段的详细信息
for
(
FieldInfo
field
:
fields
)
{
System
.
out
.
println
(
"字段ID: "
+
field
.
getFieldId
()
+
", 字段标题: "
+
field
.
getTitle
()
+
", 字段类型: "
+
field
.
getType
());
}
}
}
\ No newline at end of file
yifu-ekp/yifu-ekp-biz/src/main/java/com/yifu/cloud/plus/v1/ekp/util/WeComSheetIdFetcher.java
deleted
100644 → 0
View file @
4666f8de
package
com
.
yifu
.
cloud
.
plus
.
v1
.
ekp
.
util
;
import
com.alibaba.fastjson.JSON
;
import
com.alibaba.fastjson.JSONArray
;
import
com.alibaba.fastjson.JSONObject
;
import
com.yifu.cloud.plus.v1.ekp.config.WxConfig
;
import
lombok.Data
;
import
org.springframework.beans.factory.annotation.Autowired
;
import
org.springframework.http.*
;
import
org.springframework.stereotype.Component
;
import
org.springframework.web.client.RestTemplate
;
import
java.util.ArrayList
;
import
java.util.List
;
/**
* 企业微信智能表格SheetId获取工具类
* 用于通过文档ID获取表格ID
*/
@Data
@Component
public
class
WeComSheetIdFetcher
{
/**
* 企业微信API基础URL
*/
private
static
final
String
WE_COM_API_BASE_URL
=
"https://qyapi.weixin.qq.com/cgi-bin"
;
/**
* 获取access_token的接口路径
*/
private
static
final
String
GET_TOKEN_PATH
=
"/gettoken"
;
/**
* 查询子表的接口路径
*/
private
static
final
String
GET_SHEET_PATH
=
"/wedoc/smartsheet/get_sheet"
;
/**
* 通过文档ID获取表格ID列表
*
* @param docId 文档ID
* @return 表格ID列表
*/
public
List
<
String
>
getSheetIds
(
WxConfig
wxConfig
,
String
docId
)
{
List
<
String
>
sheetIds
=
new
ArrayList
<>();
try
{
RestTemplate
restTemplate
=
new
RestTemplate
();
// 1. 获取access_token
String
accessToken
=
wxConfig
.
getAccessToken
(
restTemplate
);
//getAccessToken(corpId, corpSecret);
if
(
accessToken
==
null
||
accessToken
.
isEmpty
())
{
System
.
err
.
println
(
"获取access_token失败"
);
return
sheetIds
;
}
// 2. 查询子表信息
List
<
SheetInfo
>
sheetInfos
=
getSheetInfo
(
accessToken
,
docId
);
for
(
SheetInfo
sheetInfo
:
sheetInfos
)
{
// 只返回智能表类型的sheet_id
if
(
"smartsheet"
.
equals
(
sheetInfo
.
getType
()))
{
sheetIds
.
add
(
sheetInfo
.
getSheetId
());
}
}
}
catch
(
Exception
e
)
{
System
.
err
.
println
(
"获取表格ID时发生异常: "
+
e
.
getMessage
());
e
.
printStackTrace
();
}
return
sheetIds
;
}
/**
* 获取企业微信access_token
*
* @param corpId 企业ID
* @param corpSecret 应用密钥
* @return access_token
*/
private
String
getAccessToken
(
String
corpId
,
String
corpSecret
)
{
try
{
String
url
=
WE_COM_API_BASE_URL
+
GET_TOKEN_PATH
+
"?corpid="
+
corpId
+
"&corpsecret="
+
corpSecret
;
RestTemplate
restTemplate
=
new
RestTemplate
();
ResponseEntity
<
String
>
response
=
restTemplate
.
getForEntity
(
url
,
String
.
class
);
if
(
response
.
getStatusCode
()
==
HttpStatus
.
OK
)
{
JSONObject
jsonObject
=
JSON
.
parseObject
(
response
.
getBody
());
if
(
jsonObject
.
getInteger
(
"errcode"
)
==
0
)
{
return
jsonObject
.
getString
(
"access_token"
);
}
else
{
System
.
err
.
println
(
"获取access_token失败,错误代码:"
+
jsonObject
.
getInteger
(
"errcode"
)
+
",错误信息:"
+
jsonObject
.
getString
(
"errmsg"
));
return
null
;
}
}
}
catch
(
Exception
e
)
{
System
.
err
.
println
(
"获取access_token时发生异常: "
+
e
.
getMessage
());
e
.
printStackTrace
();
}
return
null
;
}
/**
* 查询子表信息
*
* @param accessToken 访问令牌
* @param docId 文档ID
* @return 子表信息列表
*/
private
List
<
SheetInfo
>
getSheetInfo
(
String
accessToken
,
String
docId
)
{
List
<
SheetInfo
>
sheetInfos
=
new
ArrayList
<>();
try
{
String
url
=
WE_COM_API_BASE_URL
+
GET_SHEET_PATH
+
"?access_token="
+
accessToken
;
RestTemplate
restTemplate
=
new
RestTemplate
();
// 构造请求体
JSONObject
requestBody
=
new
JSONObject
();
requestBody
.
put
(
"docid"
,
docId
);
HttpHeaders
headers
=
new
HttpHeaders
();
headers
.
setContentType
(
MediaType
.
APPLICATION_JSON
);
HttpEntity
<
String
>
request
=
new
HttpEntity
<>(
requestBody
.
toJSONString
(),
headers
);
ResponseEntity
<
String
>
response
=
restTemplate
.
postForEntity
(
url
,
request
,
String
.
class
);
if
(
response
.
getStatusCode
()
==
HttpStatus
.
OK
)
{
JSONObject
jsonObject
=
JSON
.
parseObject
(
response
.
getBody
());
if
(
jsonObject
.
getInteger
(
"errcode"
)
==
0
)
{
JSONArray
sheets
=
jsonObject
.
getJSONArray
(
"sheet_list"
);
if
(
sheets
!=
null
&&
!
sheets
.
isEmpty
())
{
for
(
int
i
=
0
;
i
<
sheets
.
size
();
i
++)
{
JSONObject
sheet
=
sheets
.
getJSONObject
(
i
);
SheetInfo
sheetInfo
=
new
SheetInfo
();
sheetInfo
.
setSheetId
(
sheet
.
getString
(
"sheet_id"
));
sheetInfo
.
setTitle
(
sheet
.
getString
(
"title"
));
sheetInfo
.
setType
(
sheet
.
getString
(
"type"
));
sheetInfos
.
add
(
sheetInfo
);
}
}
}
else
{
System
.
err
.
println
(
"查询子表信息失败,错误代码:"
+
jsonObject
.
getInteger
(
"errcode"
)
+
",错误信息:"
+
jsonObject
.
getString
(
"errmsg"
));
}
}
}
catch
(
Exception
e
)
{
System
.
err
.
println
(
"查询子表信息时发生异常: "
+
e
.
getMessage
());
e
.
printStackTrace
();
}
return
sheetInfos
;
}
/**
* 子表信息内部类
*/
public
static
class
SheetInfo
{
private
String
sheetId
;
private
String
title
;
private
String
type
;
// smartsheet: 智能表, dashboard: 仪表盘, external: 说明页
public
String
getSheetId
()
{
return
sheetId
;
}
public
void
setSheetId
(
String
sheetId
)
{
this
.
sheetId
=
sheetId
;
}
public
String
getTitle
()
{
return
title
;
}
public
void
setTitle
(
String
title
)
{
this
.
title
=
title
;
}
public
String
getType
()
{
return
type
;
}
public
void
setType
(
String
type
)
{
this
.
type
=
type
;
}
@Override
public
String
toString
()
{
return
"SheetInfo{"
+
"sheetId='"
+
sheetId
+
'\''
+
", title='"
+
title
+
'\''
+
", type='"
+
type
+
'\''
+
'}'
;
}
}
/**
* 使用示例
*
* @param args 命令行参数
*/
public
static
void
main
(
String
[]
args
)
{
WeComSheetIdFetcher
fetcher
=
new
WeComSheetIdFetcher
();
// 示例数据
String
corpId
=
"your_corp_id"
;
String
corpSecret
=
"your_corp_secret"
;
String
docId
=
"your_doc_id"
;
// 获取表格ID列表
/* List<String> sheetIds = fetcher.getSheetIds(docId);
System.out.println("获取到的表格ID列表: " + sheetIds);*/
}
}
\ No newline at end of file
yifu-ekp/yifu-ekp-biz/src/main/java/com/yifu/cloud/plus/v1/ekp/util/WeComSmartSheetDataInserter.java
deleted
100644 → 0
View file @
4666f8de
package
com
.
yifu
.
cloud
.
plus
.
v1
.
ekp
.
util
;
import
com.alibaba.fastjson.JSON
;
import
com.alibaba.fastjson.JSONObject
;
import
com.yifu.cloud.plus.v1.ekp.config.WxConfig
;
import
org.springframework.beans.factory.annotation.Autowired
;
import
org.springframework.http.*
;
import
org.springframework.stereotype.Component
;
import
org.springframework.util.LinkedMultiValueMap
;
import
org.springframework.util.MultiValueMap
;
import
org.springframework.web.client.RestTemplate
;
import
java.util.List
;
import
java.util.Map
;
/**
* 企业微信智能表格数据插入工具类
* 用于向已有的企业微信智能表格中插入数据
*/
@Component
public
class
WeComSmartSheetDataInserter
{
@Autowired
private
WxConfig
wxConfig
;
/**
* 企业微信API基础URL
*/
private
static
final
String
WE_COM_API_BASE_URL
=
"https://qyapi.weixin.qq.com/cgi-bin"
;
/**
* 获取access_token的接口路径
*/
private
static
final
String
GET_TOKEN_PATH
=
"/gettoken"
;
/**
* 智能表格添加记录的接口路径
*/
private
static
final
String
ADD_RECORDS_PATH
=
"/wedoc/smartsheet/add_records"
;
/**
* 向企业微信智能表格中插入数据
*
* @param docId 文档ID
* @param sheetId 表格ID
* @param records 要插入的记录列表
* @return 插入结果
*/
public
boolean
insertData
(
String
docId
,
String
sheetId
,
List
<
Map
<
String
,
Object
>>
records
)
{
try
{
RestTemplate
restTemplate
=
new
RestTemplate
();
// 1. 获取access_token
String
accessToken
=
wxConfig
.
getAccessToken
(
restTemplate
);
//getAccessToken(corpId, corpSecret);
if
(
accessToken
==
null
||
accessToken
.
isEmpty
())
{
System
.
err
.
println
(
"获取access_token失败"
);
return
false
;
}
// 2. 构造请求体
JSONObject
requestBody
=
new
JSONObject
();
requestBody
.
put
(
"docid"
,
docId
);
requestBody
.
put
(
"sheet_id"
,
sheetId
);
requestBody
.
put
(
"key_type"
,
"CELL_VALUE_KEY_TYPE_FIELD_TITLE"
);
// 构造records数组
new
com
.
alibaba
.
fastjson
.
JSONArray
();
requestBody
.
put
(
"records"
,
records
);
// 3. 发送请求插入数据
boolean
result
=
addRecords
(
accessToken
,
requestBody
);
if
(
result
)
{
System
.
out
.
println
(
"数据插入成功"
);
}
else
{
System
.
err
.
println
(
"数据插入失败"
);
}
return
result
;
}
catch
(
Exception
e
)
{
System
.
err
.
println
(
"插入数据时发生异常: "
+
e
.
getMessage
());
e
.
printStackTrace
();
return
false
;
}
}
/**
* 获取企业微信access_token
*
* @param corpId 企业ID
* @param corpSecret 应用密钥
* @return access_token
*/
private
String
getAccessToken
(
String
corpId
,
String
corpSecret
)
{
try
{
String
url
=
WE_COM_API_BASE_URL
+
GET_TOKEN_PATH
+
"?corpid="
+
corpId
+
"&corpsecret="
+
corpSecret
;
RestTemplate
restTemplate
=
new
RestTemplate
();
ResponseEntity
<
String
>
response
=
restTemplate
.
getForEntity
(
url
,
String
.
class
);
if
(
response
.
getStatusCode
()
==
HttpStatus
.
OK
)
{
JSONObject
jsonObject
=
JSON
.
parseObject
(
response
.
getBody
());
if
(
jsonObject
.
getInteger
(
"errcode"
)
==
0
)
{
return
jsonObject
.
getString
(
"access_token"
);
}
else
{
System
.
err
.
println
(
"获取access_token失败,错误代码:"
+
jsonObject
.
getInteger
(
"errcode"
)
+
",错误信息:"
+
jsonObject
.
getString
(
"errmsg"
));
return
null
;
}
}
}
catch
(
Exception
e
)
{
System
.
err
.
println
(
"获取access_token时发生异常: "
+
e
.
getMessage
());
e
.
printStackTrace
();
}
return
null
;
}
/**
* 向智能表格添加记录
*
* @param accessToken 访问令牌
* @param requestBody 请求体
* @return 是否成功
*/
private
boolean
addRecords
(
String
accessToken
,
JSONObject
requestBody
)
{
try
{
String
url
=
WE_COM_API_BASE_URL
+
ADD_RECORDS_PATH
+
"?access_token="
+
accessToken
;
RestTemplate
restTemplate
=
new
RestTemplate
();
HttpHeaders
headers
=
new
HttpHeaders
();
headers
.
setContentType
(
MediaType
.
APPLICATION_JSON
);
HttpEntity
<
String
>
request
=
new
HttpEntity
<>(
requestBody
.
toJSONString
(),
headers
);
ResponseEntity
<
String
>
response
=
restTemplate
.
postForEntity
(
url
,
request
,
String
.
class
);
if
(
response
.
getStatusCode
()
==
HttpStatus
.
OK
)
{
JSONObject
jsonObject
=
JSON
.
parseObject
(
response
.
getBody
());
if
(
jsonObject
.
getInteger
(
"errcode"
)
==
0
)
{
return
true
;
}
else
{
System
.
err
.
println
(
"添加记录失败,错误代码:"
+
jsonObject
.
getInteger
(
"errcode"
)
+
",错误信息:"
+
jsonObject
.
getString
(
"errmsg"
));
return
false
;
}
}
}
catch
(
Exception
e
)
{
System
.
err
.
println
(
"添加记录时发生异常: "
+
e
.
getMessage
());
e
.
printStackTrace
();
}
return
false
;
}
/**
* 使用示例
*
* @param args 命令行参数
*/
public
static
void
main
(
String
[]
args
)
{
WeComSmartSheetDataInserter
inserter
=
new
WeComSmartSheetDataInserter
();
// 示例数据
String
corpId
=
"your_corp_id"
;
String
corpSecret
=
"your_corp_secret"
;
String
docId
=
"your_doc_id"
;
String
sheetId
=
"your_sheet_id"
;
// 构造要插入的数据
new
java
.
util
.
ArrayList
<
Map
<
String
,
Object
>>();
/*
// 示例记录
Map<String, Object> record1 = new HashMap<>();
Map<String, Object> values1 = new HashMap<>();
values1.put("姓名", "张三");
values1.put("年龄", 25);
values1.put("部门", "技术部");
record1.put("values", values1);
Map<String, Object> record2 = new HashMap<>();
Map<String, Object> values2 = new HashMap<>();
values2.put("姓名", "李四");
values2.put("年龄", 30);
values2.put("部门", "市场部");
record2.put("values", values2);
records.add(record1);
records.add(record2);
// 执行插入
boolean success = inserter.insertData(corpId, corpSecret, docId, sheetId, records);
if (success) {
System.out.println("数据插入成功");
} else {
System.out.println("数据插入失败");
}
*/
}
}
\ No newline at end of file
Write
Preview
Markdown
is supported
0%
Try again
or
attach a new file
Attach a file
Cancel
You are about to add
0
people
to the discussion. Proceed with caution.
Finish editing this message first!
Cancel
Please
register
or
sign in
to comment