简要描述:
- 导入模板用于获取不同模板,然后根据模板整理数据,进行导入
接口版本:
版本号 | 制定人 | 制定日期 | 修订日期 |
---|---|---|---|
v3 | 陈碧贵 | 2019-01-20 | xxxx-xx-xx |
请求URL:
http://{url参数}/bo/api/v3/excel/{mkey}/used/res/{resField}?_nodejs=common-data
http://localhost:58582/bo/api/v3/excel/bo-area/used/res/manager?_nodejs=common-data
- {mkey} 对应mapper文件
- {resField} 对应 {mkey}里面 responseField键
请求方式:
- GET
请求头:
参数名 | 是否必须 | 类型 | 说明 |
---|---|---|---|
XownerId | 是 | string | 项目唯一ID,对应bo_project {ownerId} |
XsysId | 否 | string | 所属系统 对应 bo_system 表 |
XuserFromFirstShareId | string | 否 | 一级分享用户ID, bo_user user_id |
XuserFromSecondShareId | string | 否 | 二级分享用户ID, bo_user user_id |
XverifyApi | 是 | string | 加密规则encryptByDES(`${newGuid()} |
XfilterAreaCode | 否 | string | 行政区编码, 对应 bo_sys_area area_code |
Content-Type: | 是 | string | application/json; charset=utf-8 请求类型 |
Authorization | 是 | string | 当前用户认证信息,通过登录接口获取 Bearer eyJhbGciOiJIUzI1NiIsInR5cCI6 |
请求参数:
参数名 | 是否必须 | 类型 | 说明 |
---|---|---|---|
depName | 否 | string | 机构关键字 |
_nodejs | 是 | string | common-data 对应/Config/AppNodeJs/Plugins/fn- common-data.js, 通过nodejs插件,对响应结果进行二次处理 common-data 普通数据(小写驼峰)common-data-under 普通数据下划线 |
返回示例:
正确时返回:
{
data: {
items: {
basis: {
startRowIndex: 1,
resm: "basis",
descrition: "",
icon: "",
title: "基础模板",
template:
"~/App_Data/Templates/basis/bo-area/template_bo-area_basis.xlsx",
import: true,
export: true,
},
},
},
code: 0,
success: true,
}
错误时返回:
{
"code": 0,
"message": ""
"error":{
errorCode:null,
errorText:null
}
"success": false,
}
返回参数说明:
参数名 | 类型 | 说明 |
---|---|---|
success | bool | true 表示数据请求成功(跟code=0一致),调用者优先使用 |
code | int | true 表示数据请求成功(跟code=0一致),调用者优先使用 |
data | object | |
cacheType | string | redis/sqlite/local 数据来源缓存 的类型(便于开发调试和性能优化) |
cacheDate | date | 最后数据获取时间 |
data参数说明:
basis: {
startRowIndex: 1, //读取数据的行
resm: "basis", //引用的列配置文件
descrition: "",//模板说明信息
icon: "",//模板图标
title: "基础模板",//模板标题
template:"~/App_Data/Templates/basis/bo-area/template_bo-area_basis.xlsx",//模板所在的服务器磁盘路径
import: true,//是否为导入模板
export: true,//是否为导出模板
},
.netcore服务端源码实现
/// <summary>
/// 列表查询(显示转换后结果) ownerId=base (对应 Config/Mapper)
/// 通过 resField 处理要显示的字段
/// </summary>
/// <param name="mkey">mkey=control_item_dim_v2( 对应 Config/Mapper)</param>
/// <param name="resField">对应配置文件里面 responseField key</param>
/// <returns></returns>
[HttpGet("{mkey}/templage/res/{resField}")]
public async Task<IActionResult> BuilderExcel([Required]string mkey, [Required]string resField)
{
var pf = new PFGlobalParameter
{
OwnerId = RequestPFUtil.GetOwnerId(this.HttpContext),
SysId = RequestPFUtil.GetSysId(this.HttpContext)
};
pf.ModuleKey = mkey;
pf.ReponseField = resField;
Dictionary<string, object> dictionaryUrl = RequestPFUtil.ConvertHTByReqFormOrParamsD(this.HttpContext);
SqlConfig sqlConfig = _sqlConfigService.BuildUseSqlConfigMapper(true, pf, mkey, resField);
DataTable dt = _excelRepository.BuildIintDataTable(pf, sqlConfig);
string excelPath = $"~/App_Temp/Excels/{pf.OwnerId}/{mkey}/template_{mkey}_{resField}.xlsx";
bool doExcelResult = _excelRepository.DataTableToExcel(excelPath, dt, "Sheet1");
return new JsonResult(new ResultDetail<object>
{
Success = doExcelResult,
Data = new
{
Url = excelPath
}
}); ;
}
文档更新时间: 2021-08-22 08:00 作者:admin