mirror of
https://gitee.com/binary/weixin-java-tools.git
synced 2026-01-23 21:32:09 +08:00
【企业微信】新增管理表格内容相🆕 #3837 【企业微信】微文档(WeDoc)服务新增了三个管理表格内容的 API 接口,包括批量更新表格内容、获取表格行列信息以及获取指定范围的表格数据
This commit is contained in:
@@ -78,4 +78,53 @@ public interface WxCpOaWeDocService {
|
|||||||
* @throws WxErrorException the wx error exception
|
* @throws WxErrorException the wx error exception
|
||||||
*/
|
*/
|
||||||
WxCpDocShare docShare(@NonNull String docId) throws WxErrorException;
|
WxCpDocShare docShare(@NonNull String docId) throws WxErrorException;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 编辑表格内容
|
||||||
|
* 该接口可以对一个在线表格批量执行多个更新操作
|
||||||
|
* <p>
|
||||||
|
* 注意:
|
||||||
|
* 1.批量更新请求中的各个操作会逐个按顺序执行,直到全部执行完成则请求返回,或者其中一个操作报错则不再继续执行后续的操作
|
||||||
|
* 2.每一个更新操作在执行之前都会做请求校验(包括权限校验、参数校验等等),如果校验未通过则该更新操作会报错并返回,不再执行后续操作
|
||||||
|
* 3.单次批量更新请求的操作数量 <= 5
|
||||||
|
* <p>
|
||||||
|
* 请求方式:POST(HTTPS)
|
||||||
|
* 请求地址: https://qyapi.weixin.qq.com/cgi-bin/wedoc/spreadsheet/batch_update?access_token=ACCESS_TOKEN
|
||||||
|
*
|
||||||
|
* @param request 编辑表格内容请求参数
|
||||||
|
* @return 编辑表格内容批量更新的响应结果
|
||||||
|
* @throws WxErrorException the wx error exception
|
||||||
|
*/
|
||||||
|
WxCpDocSheetBatchUpdateResponse docBatchUpdate(@NonNull WxCpDocSheetBatchUpdateRequest request) throws WxErrorException;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 获取表格行列信息
|
||||||
|
* 该接口用于获取在线表格的工作表、行数、列数等。
|
||||||
|
* <p>
|
||||||
|
* 请求方式:POST(HTTPS)
|
||||||
|
* 请求地址: https://qyapi.weixin.qq.com/cgi-bin/wedoc/spreadsheet/get_sheet_properties?access_token=ACCESS_TOKEN
|
||||||
|
*
|
||||||
|
* @param docId 在线表格的docid
|
||||||
|
* @return 返回表格行列信息
|
||||||
|
* @throws WxErrorException
|
||||||
|
*/
|
||||||
|
WxCpDocSheetProperties getSheetProperties(@NonNull String docId) throws WxErrorException;
|
||||||
|
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 本接口用于获取指定范围内的在线表格信息,单次查询的范围大小需满足以下限制:
|
||||||
|
* <p>
|
||||||
|
* 查询范围行数 <=1000
|
||||||
|
* 查询范围列数 <=200
|
||||||
|
* 范围内的总单元格数量 <=10000
|
||||||
|
* <p>
|
||||||
|
* 请求方式:POST(HTTPS)
|
||||||
|
* 请求地址: https://qyapi.weixin.qq.com/cgi-bin/wedoc/spreadsheet/get_sheet_range_data?access_token=ACCESS_TOKEN
|
||||||
|
*
|
||||||
|
* @param request 获取指定范围内的在线表格信息请求参数
|
||||||
|
* @return 返回指定范围内的在线表格信息
|
||||||
|
* @throws WxErrorException
|
||||||
|
*/
|
||||||
|
WxCpDocSheetData getSheetRangeData(@NonNull WxCpDocSheetGetDataRequest request) throws WxErrorException;
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -63,4 +63,27 @@ public class WxCpOaWeDocServiceImpl implements WxCpOaWeDocService {
|
|||||||
String responseContent = this.cpService.post(apiUrl, jsonObject.toString());
|
String responseContent = this.cpService.post(apiUrl, jsonObject.toString());
|
||||||
return WxCpDocShare.fromJson(responseContent);
|
return WxCpDocShare.fromJson(responseContent);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public WxCpDocSheetBatchUpdateResponse docBatchUpdate(@NonNull WxCpDocSheetBatchUpdateRequest request) throws WxErrorException {
|
||||||
|
String apiUrl = this.cpService.getWxCpConfigStorage().getApiUrl(WEDOC_SPREADSHEET_BATCH_UPDATE);
|
||||||
|
String responseContent = this.cpService.post(apiUrl, request.toJson());
|
||||||
|
return WxCpDocSheetBatchUpdateResponse.fromJson(responseContent);
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public WxCpDocSheetProperties getSheetProperties(@NonNull String docId) throws WxErrorException {
|
||||||
|
String apiUrl = this.cpService.getWxCpConfigStorage().getApiUrl(WEDOC_SPREADSHEET_GET_SHEET_PROPERTIES);
|
||||||
|
JsonObject jsonObject = new JsonObject();
|
||||||
|
jsonObject.addProperty("docid", docId);
|
||||||
|
String responseContent = this.cpService.post(apiUrl, jsonObject.toString());
|
||||||
|
return WxCpDocSheetProperties.fromJson(responseContent);
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public WxCpDocSheetData getSheetRangeData(@NonNull WxCpDocSheetGetDataRequest request) throws WxErrorException {
|
||||||
|
String apiUrl = this.cpService.getWxCpConfigStorage().getApiUrl(WEDOC_SPREADSHEET_GET_SHEET_RANGE_DATA);
|
||||||
|
String responseContent = this.cpService.post(apiUrl, request.toJson());
|
||||||
|
return WxCpDocSheetData.fromJson(responseContent);
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -0,0 +1,199 @@
|
|||||||
|
package me.chanjar.weixin.cp.bean.oa.doc;
|
||||||
|
|
||||||
|
import java.io.Serializable;
|
||||||
|
import java.util.List;
|
||||||
|
|
||||||
|
import com.google.gson.annotations.SerializedName;
|
||||||
|
|
||||||
|
import lombok.AllArgsConstructor;
|
||||||
|
import lombok.Builder;
|
||||||
|
import lombok.Data;
|
||||||
|
import lombok.Getter;
|
||||||
|
import lombok.NoArgsConstructor;
|
||||||
|
import lombok.Setter;
|
||||||
|
import lombok.experimental.Accessors;
|
||||||
|
import me.chanjar.weixin.cp.bean.oa.doc.WxCpDocSheetData.GridData;
|
||||||
|
import me.chanjar.weixin.cp.util.json.WxCpGsonBuilder;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 编辑表格内容请求
|
||||||
|
*
|
||||||
|
* @author zhongying
|
||||||
|
* @since 2026-01-07
|
||||||
|
*/
|
||||||
|
@Data
|
||||||
|
@Builder
|
||||||
|
@NoArgsConstructor
|
||||||
|
@AllArgsConstructor
|
||||||
|
@Accessors(chain = true)
|
||||||
|
public class WxCpDocSheetBatchUpdateRequest implements Serializable {
|
||||||
|
private static final long serialVersionUID = 584565591133421347L;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 文档的docid.必填
|
||||||
|
*/
|
||||||
|
@SerializedName("docid")
|
||||||
|
private String docId;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 更新操作列表.必填
|
||||||
|
*/
|
||||||
|
@SerializedName("requests")
|
||||||
|
private List<Request> requests;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* From json wx cp doc sheet batch update request.
|
||||||
|
*
|
||||||
|
* @param json the json
|
||||||
|
* @return the wx cp doc sheet batch update request
|
||||||
|
*/
|
||||||
|
public static WxCpDocSheetBatchUpdateRequest fromJson(String json) {
|
||||||
|
return WxCpGsonBuilder.create().fromJson(json, WxCpDocSheetBatchUpdateRequest.class);
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* To json string.
|
||||||
|
*
|
||||||
|
* @return the string
|
||||||
|
*/
|
||||||
|
public String toJson() {
|
||||||
|
return WxCpGsonBuilder.create().toJson(this);
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 更新操作
|
||||||
|
*/
|
||||||
|
@Getter
|
||||||
|
@Setter
|
||||||
|
public static class Request implements Serializable {
|
||||||
|
private static final long serialVersionUID = 253933038745894628L;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 新增工作表
|
||||||
|
*/
|
||||||
|
@SerializedName("add_sheet_request")
|
||||||
|
private AddSheetRequest addSheetRequest;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 删除工作表请求
|
||||||
|
*/
|
||||||
|
@SerializedName("delete_sheet_request")
|
||||||
|
private DeleteSheetRequest deleteSheetRequest;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 更新范围内单元格内容
|
||||||
|
*/
|
||||||
|
@SerializedName("update_range_request")
|
||||||
|
private UpdateRangeRequest updateRangeRequest;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 删除表格连续的行或列
|
||||||
|
*/
|
||||||
|
@SerializedName("delete_dimension_request")
|
||||||
|
private DeleteDimensionRequest deleteDimensionRequest;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 新增工作表,新增需满足以下限制
|
||||||
|
* 范围列数 <=200
|
||||||
|
* 范围内的总单元格数量 <=10000
|
||||||
|
*/
|
||||||
|
@Getter
|
||||||
|
@Setter
|
||||||
|
public static class AddSheetRequest implements Serializable {
|
||||||
|
private static final long serialVersionUID = 523704967699486288L;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 工作表名称
|
||||||
|
*/
|
||||||
|
@SerializedName("title")
|
||||||
|
private String title;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 新增工作表的初始行数
|
||||||
|
*/
|
||||||
|
@SerializedName("row_count")
|
||||||
|
private int rowCount;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 新增工作表的初始列数
|
||||||
|
*/
|
||||||
|
@SerializedName("column_count")
|
||||||
|
private int columnCount;
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 删除工作表请求
|
||||||
|
*/
|
||||||
|
@Getter
|
||||||
|
@Setter
|
||||||
|
public static class DeleteSheetRequest implements Serializable {
|
||||||
|
private static final long serialVersionUID = 767974765396168274L;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 工作表唯一标识
|
||||||
|
*/
|
||||||
|
@SerializedName("sheet_id")
|
||||||
|
private String sheetId;
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 更新范围内单元格内容
|
||||||
|
*/
|
||||||
|
@Getter
|
||||||
|
@Setter
|
||||||
|
public static class UpdateRangeRequest implements Serializable {
|
||||||
|
private static final long serialVersionUID = 433859595039061888L;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 工作表唯一标识
|
||||||
|
*/
|
||||||
|
@SerializedName("sheet_id")
|
||||||
|
private String sheetId;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 表格数据
|
||||||
|
*/
|
||||||
|
@SerializedName("grid_data")
|
||||||
|
private GridData gridData;
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 删除表格连续的行或列
|
||||||
|
* 注意:
|
||||||
|
* 1.该操作会导致表格缩表
|
||||||
|
* 2.删除的范围遵循 左闭右开 ———— [start_index,end_index) ,如果 end_index <= start_index
|
||||||
|
* 则该请求报错。
|
||||||
|
*/
|
||||||
|
@Getter
|
||||||
|
@Setter
|
||||||
|
public static class DeleteDimensionRequest implements Serializable {
|
||||||
|
private static final long serialVersionUID = 107245521502978033L;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 工作表唯一标识
|
||||||
|
*/
|
||||||
|
@SerializedName("sheet_id")
|
||||||
|
private String sheetId;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 删除的维度类型.
|
||||||
|
* ROW:行
|
||||||
|
* COLUMN:列
|
||||||
|
*/
|
||||||
|
@SerializedName("dimension")
|
||||||
|
private String dimension;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 删除行列的起始序号(从1开始)
|
||||||
|
*/
|
||||||
|
@SerializedName("start_index")
|
||||||
|
private int startIndex;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 删除行列的终止序号(从1开始)
|
||||||
|
*/
|
||||||
|
@SerializedName("end_index")
|
||||||
|
private int endIndex;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
@@ -0,0 +1,126 @@
|
|||||||
|
package me.chanjar.weixin.cp.bean.oa.doc;
|
||||||
|
|
||||||
|
import java.io.Serializable;
|
||||||
|
|
||||||
|
import com.google.gson.annotations.SerializedName;
|
||||||
|
|
||||||
|
import lombok.Data;
|
||||||
|
import lombok.Getter;
|
||||||
|
import lombok.Setter;
|
||||||
|
import me.chanjar.weixin.cp.bean.oa.doc.WxCpDocSheetProperties.Properties;
|
||||||
|
import me.chanjar.weixin.cp.util.json.WxCpGsonBuilder;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 更新操作(UpdateRequest])对应的响应结构体类型
|
||||||
|
*
|
||||||
|
* @author zhongying
|
||||||
|
* @since 2026-01-08
|
||||||
|
*/
|
||||||
|
@Data
|
||||||
|
public class WxCpDocSheetBatchUpdateResponse implements Serializable {
|
||||||
|
private static final long serialVersionUID = 781694717017131015L;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 新增工作表响应
|
||||||
|
*/
|
||||||
|
@SerializedName("add_sheet_response")
|
||||||
|
private AddSheetResponse addSheetResponse;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 删除工作表响应
|
||||||
|
*/
|
||||||
|
@SerializedName("delete_sheet_response")
|
||||||
|
private DeleteSheetResponse deleteSheetResponse;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 更新范围内单元格内容响应
|
||||||
|
*/
|
||||||
|
@SerializedName("update_range_response")
|
||||||
|
private UpdateRangeResponse updateRangeResponse;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 删除表格连续的行或列响应
|
||||||
|
*/
|
||||||
|
@SerializedName("delete_dimension_response")
|
||||||
|
private DeleteDimensionResponse deleteDimensionResponse;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 从 JSON 字符串反序列化为 WxCpDocSheetBatchUpdateResponse 对象。
|
||||||
|
*
|
||||||
|
* @param json the json
|
||||||
|
* @return 反序列化得到的 WxCpDocSheetBatchUpdateResponse 对象
|
||||||
|
*/
|
||||||
|
public static WxCpDocSheetBatchUpdateResponse fromJson(String json) {
|
||||||
|
return WxCpGsonBuilder.create().fromJson(json, WxCpDocSheetBatchUpdateResponse.class);
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* To json string.
|
||||||
|
*
|
||||||
|
* @return the string
|
||||||
|
*/
|
||||||
|
public String toJson() {
|
||||||
|
return WxCpGsonBuilder.create().toJson(this);
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 新增工作表响应
|
||||||
|
*/
|
||||||
|
@Getter
|
||||||
|
@Setter
|
||||||
|
public static class AddSheetResponse implements Serializable {
|
||||||
|
private static final long serialVersionUID = 618814209485621336L;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 新增子表的属性
|
||||||
|
*/
|
||||||
|
@SerializedName("properties")
|
||||||
|
private Properties properties;
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 删除工作表响应
|
||||||
|
*/
|
||||||
|
@Getter
|
||||||
|
@Setter
|
||||||
|
public static class DeleteSheetResponse implements Serializable {
|
||||||
|
private static final long serialVersionUID = 625927337093938411L;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 被删除的工作表的唯一标识
|
||||||
|
*/
|
||||||
|
@SerializedName("sheet_id")
|
||||||
|
private String sheetId;
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 更新范围内单元格内容响应
|
||||||
|
*/
|
||||||
|
@Getter
|
||||||
|
@Setter
|
||||||
|
public static class UpdateRangeResponse implements Serializable {
|
||||||
|
private static final long serialVersionUID = 180842641209787414L;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 数据更新的成功的单元格数量
|
||||||
|
*/
|
||||||
|
@SerializedName("updated_cells")
|
||||||
|
private int updatedCells;
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 删除表格连续的行(或列),请求响应体结构
|
||||||
|
*/
|
||||||
|
@Getter
|
||||||
|
@Setter
|
||||||
|
public static class DeleteDimensionResponse implements Serializable {
|
||||||
|
private static final long serialVersionUID = 107245521502978033L;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 被删除的行数(或列数)
|
||||||
|
*/
|
||||||
|
@SerializedName("deleted")
|
||||||
|
private int deleted;
|
||||||
|
}
|
||||||
|
|
||||||
|
}
|
||||||
@@ -0,0 +1,260 @@
|
|||||||
|
package me.chanjar.weixin.cp.bean.oa.doc;
|
||||||
|
|
||||||
|
import java.io.Serializable;
|
||||||
|
import java.util.List;
|
||||||
|
|
||||||
|
import com.google.gson.annotations.SerializedName;
|
||||||
|
|
||||||
|
import lombok.Data;
|
||||||
|
import lombok.Getter;
|
||||||
|
import lombok.Setter;
|
||||||
|
import me.chanjar.weixin.cp.bean.WxCpBaseResp;
|
||||||
|
import me.chanjar.weixin.cp.util.json.WxCpGsonBuilder;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 获取表格数据
|
||||||
|
*
|
||||||
|
* @author zhongying
|
||||||
|
* @since 2026-01-07
|
||||||
|
*/
|
||||||
|
@Data
|
||||||
|
public class WxCpDocSheetData extends WxCpBaseResp implements Serializable {
|
||||||
|
private static final long serialVersionUID = 498054945993671723L;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 返回data
|
||||||
|
*/
|
||||||
|
@SerializedName("grid_data")
|
||||||
|
private GridData gridData;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* From json sheet data.
|
||||||
|
*
|
||||||
|
* @param json the json
|
||||||
|
* @return the sheet data
|
||||||
|
*/
|
||||||
|
public static WxCpDocSheetData fromJson(String json) {
|
||||||
|
return WxCpGsonBuilder.create().fromJson(json, WxCpDocSheetData.class);
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* To json string.
|
||||||
|
*
|
||||||
|
* @return the string
|
||||||
|
*/
|
||||||
|
@Override
|
||||||
|
public String toJson() {
|
||||||
|
return WxCpGsonBuilder.create().toJson(this);
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 表格数据
|
||||||
|
*/
|
||||||
|
@Getter
|
||||||
|
@Setter
|
||||||
|
public static class GridData implements Serializable {
|
||||||
|
private static final long serialVersionUID = 389887488098521821L;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 起始行编号 (从0开始计算)
|
||||||
|
*/
|
||||||
|
@SerializedName("start_row")
|
||||||
|
private int startRow;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 起始列编号 (从0开始计算)
|
||||||
|
*/
|
||||||
|
@SerializedName("start_column")
|
||||||
|
private int startColumn;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 各行的数据
|
||||||
|
*/
|
||||||
|
@SerializedName("rows")
|
||||||
|
private List<RowData> rows;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 行数据
|
||||||
|
*/
|
||||||
|
@Getter
|
||||||
|
@Setter
|
||||||
|
public static class RowData implements Serializable {
|
||||||
|
private static final long serialVersionUID = 225648868492722337L;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 各个单元格的数据内容
|
||||||
|
*/
|
||||||
|
@SerializedName("values")
|
||||||
|
private List<CellData> values;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 单元格的信息
|
||||||
|
*/
|
||||||
|
@Getter
|
||||||
|
@Setter
|
||||||
|
public static class CellData implements Serializable {
|
||||||
|
private static final long serialVersionUID = 656471192719707304L;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 单元格的数据内容
|
||||||
|
*/
|
||||||
|
@SerializedName("cell_value")
|
||||||
|
private CellValue cellValue;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 单元格的样式信息
|
||||||
|
*/
|
||||||
|
@SerializedName("cell_format")
|
||||||
|
private CellFormat cellFormat;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 单元格的数据内容,暂时只支持文本、链接,一个CellValue中只能选填一个字段
|
||||||
|
*/
|
||||||
|
@Getter
|
||||||
|
@Setter
|
||||||
|
public static class CellValue implements Serializable {
|
||||||
|
private static final long serialVersionUID = 656471192719707304L;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 文本
|
||||||
|
*/
|
||||||
|
@SerializedName("text")
|
||||||
|
private String text;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 链接
|
||||||
|
*/
|
||||||
|
@SerializedName("link")
|
||||||
|
private Link link;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 链接
|
||||||
|
*/
|
||||||
|
@Getter
|
||||||
|
@Setter
|
||||||
|
public static class Link implements Serializable {
|
||||||
|
private static final long serialVersionUID = 912896452879347178L;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 链接url
|
||||||
|
*/
|
||||||
|
@SerializedName("url")
|
||||||
|
private String url;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 链接标题
|
||||||
|
*/
|
||||||
|
@SerializedName("text")
|
||||||
|
private String text;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 单元格的样式信息
|
||||||
|
*/
|
||||||
|
@Getter
|
||||||
|
@Setter
|
||||||
|
public static class CellFormat implements Serializable {
|
||||||
|
private static final long serialVersionUID = 656471192719707304L;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 文字样式
|
||||||
|
*/
|
||||||
|
|
||||||
|
@SerializedName("text_format")
|
||||||
|
private TextFormat textFormat;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 文字样式
|
||||||
|
*/
|
||||||
|
@Getter
|
||||||
|
@Setter
|
||||||
|
public static class TextFormat implements Serializable {
|
||||||
|
private static final long serialVersionUID = 184358104921122206L;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 字体
|
||||||
|
*/
|
||||||
|
@SerializedName("font")
|
||||||
|
private String font;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 字体大小,最大72
|
||||||
|
*/
|
||||||
|
@SerializedName("font_size")
|
||||||
|
private int fontSize;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 字体加粗
|
||||||
|
*/
|
||||||
|
@SerializedName("bold")
|
||||||
|
private boolean bold;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 斜体
|
||||||
|
*/
|
||||||
|
@SerializedName("italic")
|
||||||
|
private boolean italic;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 字体删除线
|
||||||
|
*/
|
||||||
|
@SerializedName("strikethrough")
|
||||||
|
private boolean strikethrough;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 字体下划线
|
||||||
|
*/
|
||||||
|
@SerializedName("underline")
|
||||||
|
private boolean underline;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 字体颜色
|
||||||
|
*/
|
||||||
|
@SerializedName("color")
|
||||||
|
private Color color;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 字体颜色
|
||||||
|
*/
|
||||||
|
@Getter
|
||||||
|
@Setter
|
||||||
|
public static class Color implements Serializable {
|
||||||
|
private static final long serialVersionUID = 140418085882147315L;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 红色,取值范围:[0,255]
|
||||||
|
*/
|
||||||
|
@SerializedName("red")
|
||||||
|
private int red;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 绿色,取值范围:[0,255]
|
||||||
|
*/
|
||||||
|
@SerializedName("green")
|
||||||
|
private int green;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 蓝色,取值范围:[0,255]
|
||||||
|
*/
|
||||||
|
@SerializedName("blue")
|
||||||
|
private int blue;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* alpha通道,取值范围:[0,255],默认值为255完全不透明
|
||||||
|
*/
|
||||||
|
@SerializedName("alpha")
|
||||||
|
private int alpha;
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
}
|
||||||
@@ -0,0 +1,64 @@
|
|||||||
|
package me.chanjar.weixin.cp.bean.oa.doc;
|
||||||
|
|
||||||
|
import java.io.Serializable;
|
||||||
|
|
||||||
|
import com.google.gson.annotations.SerializedName;
|
||||||
|
|
||||||
|
import lombok.AllArgsConstructor;
|
||||||
|
import lombok.Builder;
|
||||||
|
import lombok.Data;
|
||||||
|
import lombok.NoArgsConstructor;
|
||||||
|
import lombok.experimental.Accessors;
|
||||||
|
import me.chanjar.weixin.cp.util.json.WxCpGsonBuilder;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 获取表格数据请求
|
||||||
|
*
|
||||||
|
* @author zhongying
|
||||||
|
* @since 2026-01-07
|
||||||
|
*/
|
||||||
|
@Data
|
||||||
|
@Builder
|
||||||
|
@NoArgsConstructor
|
||||||
|
@AllArgsConstructor
|
||||||
|
@Accessors(chain = true)
|
||||||
|
public class WxCpDocSheetGetDataRequest implements Serializable {
|
||||||
|
private static final long serialVersionUID = 827718590347822812L;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 在线表格唯一标识.必填
|
||||||
|
*/
|
||||||
|
@SerializedName("docid")
|
||||||
|
private String docId;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 工作表ID,工作表的唯一标识.必填
|
||||||
|
*/
|
||||||
|
@SerializedName("sheet_id")
|
||||||
|
private String sheetId;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 查询的范围,格式为"A1:B2",表示获取A1到B2单元格的数据.必填
|
||||||
|
*/
|
||||||
|
@SerializedName("range")
|
||||||
|
private String range;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* From json to {@link WxCpDocSheetGetDataRequest}.
|
||||||
|
*
|
||||||
|
* @param json the json string representing {@link WxCpDocSheetGetDataRequest}
|
||||||
|
* @return the {@link WxCpDocSheetGetDataRequest} object
|
||||||
|
*/
|
||||||
|
public static WxCpDocSheetGetDataRequest fromJson(String json) {
|
||||||
|
return WxCpGsonBuilder.create().fromJson(json, WxCpDocSheetGetDataRequest.class);
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* To json string.
|
||||||
|
*
|
||||||
|
* @return the string
|
||||||
|
*/
|
||||||
|
public String toJson() {
|
||||||
|
return WxCpGsonBuilder.create().toJson(this);
|
||||||
|
}
|
||||||
|
}
|
||||||
@@ -0,0 +1,79 @@
|
|||||||
|
package me.chanjar.weixin.cp.bean.oa.doc;
|
||||||
|
|
||||||
|
import java.io.Serializable;
|
||||||
|
import java.util.List;
|
||||||
|
|
||||||
|
import com.google.gson.annotations.SerializedName;
|
||||||
|
|
||||||
|
import lombok.Data;
|
||||||
|
import lombok.Getter;
|
||||||
|
import lombok.Setter;
|
||||||
|
import me.chanjar.weixin.cp.bean.WxCpBaseResp;
|
||||||
|
import me.chanjar.weixin.cp.util.json.WxCpGsonBuilder;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 获取表格行列信息
|
||||||
|
*
|
||||||
|
* @author zhongying
|
||||||
|
* @since 2026-01-07
|
||||||
|
*/
|
||||||
|
@Data
|
||||||
|
public class WxCpDocSheetProperties extends WxCpBaseResp implements Serializable {
|
||||||
|
private static final long serialVersionUID = 666707252457243065L;
|
||||||
|
|
||||||
|
@SerializedName("properties")
|
||||||
|
private List<Properties> properties;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* From json sheet properties.
|
||||||
|
*
|
||||||
|
* @param json the json
|
||||||
|
* @return the sheet properties
|
||||||
|
*/
|
||||||
|
public static WxCpDocSheetProperties fromJson(String json) {
|
||||||
|
return WxCpGsonBuilder.create().fromJson(json, WxCpDocSheetProperties.class);
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* To json string.
|
||||||
|
*
|
||||||
|
* @return the string
|
||||||
|
*/
|
||||||
|
public String toJson() {
|
||||||
|
return WxCpGsonBuilder.create().toJson(this);
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 工作表属性
|
||||||
|
*/
|
||||||
|
@Getter
|
||||||
|
@Setter
|
||||||
|
public static class Properties implements Serializable {
|
||||||
|
private static final long serialVersionUID = 640301090538839892L;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 工作表ID,工作表的唯一标识
|
||||||
|
*/
|
||||||
|
@SerializedName("sheet_id")
|
||||||
|
private String sheetId;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 工作表名称
|
||||||
|
*/
|
||||||
|
@SerializedName("title")
|
||||||
|
private String title;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 表格的总行数
|
||||||
|
*/
|
||||||
|
@SerializedName("row_count")
|
||||||
|
private int rowCount;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 表格的总列数
|
||||||
|
*/
|
||||||
|
@SerializedName("column_count")
|
||||||
|
private int columnCount;
|
||||||
|
|
||||||
|
}
|
||||||
|
}
|
||||||
@@ -575,6 +575,21 @@ public interface WxCpApiPathConsts {
|
|||||||
*/
|
*/
|
||||||
String WEDOC_DOC_SHARE = "/cgi-bin/wedoc/doc_share";
|
String WEDOC_DOC_SHARE = "/cgi-bin/wedoc/doc_share";
|
||||||
|
|
||||||
|
/**
|
||||||
|
* The constant WEDOC_SPREADSHEET_BATCH_UPDATE.
|
||||||
|
*/
|
||||||
|
String WEDOC_SPREADSHEET_BATCH_UPDATE = "/cgi-bin/wedoc/spreadsheet/batch_update";
|
||||||
|
|
||||||
|
/**
|
||||||
|
* The constant WEDOC_SPREADSHEET_GET_SHEET_PROPERTIES.
|
||||||
|
*/
|
||||||
|
String WEDOC_SPREADSHEET_GET_SHEET_PROPERTIES = "/cgi-bin/wedoc/spreadsheet/get_sheet_properties";
|
||||||
|
|
||||||
|
/**
|
||||||
|
* The constant WEDOC_SPREADSHEET_GET_SHEET_RANGE_DATA.
|
||||||
|
*/
|
||||||
|
String WEDOC_SPREADSHEET_GET_SHEET_RANGE_DATA = "/cgi-bin/wedoc/spreadsheet/get_sheet_range_data";
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* 邮件
|
* 邮件
|
||||||
* https://developer.work.weixin.qq.com/document/path/95486
|
* https://developer.work.weixin.qq.com/document/path/95486
|
||||||
|
|||||||
Reference in New Issue
Block a user