Asp.Net Core Excel导入导出
·
Excel 导入导出使用开源项目 NPOI 进行处理,以下把用户导入和用户导出作为示例。 Excel 导入 Excel 导入分两步,第一步把需要导入的文件通过 FileController 上传到后台,第二步把第一步返回 的文件相对地址传给导入处理方法。
Excel导入
1.前端写法
<script type="text/javascript">
var filePath = undefined;
$(document).ready(function () {
$("#isOverride").ysCheckBox({
data: [{ Key: '1', Value: '是否更新已经存在的用户数据' }]
});
$("#importFile").fileinput({
language: 'zh',
'uploadUrl': '@Url.Content("~/File/UploadFile")' + '?fileModule=@UploadFileType.Import.ParseToInt()',
showPreview: false,
allowedFileExtensions: ['xls', 'xlsx']
}).on("fileuploaded", function (event, data) {
var obj = data.response;
if (obj.Tag == 1) {
filePath = obj.Data;
}
else {
filePath = '';
}
});
});
function saveForm(index) {
if (!filePath) {
ys.alertError('文件未上传或者上传失败');
return;
}
var postData =$("#form").getWebControls();
postData.FilePath = filePath;
ys.ajax({
url: '@Url.Content("~/OrganizationManage/User/ImportUserJson")',
type: "post",
data: postData,
success: function (obj) {
if (obj.Tag == 1) {
ys.msgSuccess('导入成功');
parent.searchGrid();
parent.layer.close(index);
}
else {
ys.msgError(obj.Message);
}
}
});
}
</script>
2.后端写法
[HttpPost]
public async Task<IActionResult> ImportUserJson(ImportParam param)
{
List<UserEntity> list = new ExcelHelper<UserEntity>().ImportFromExcel(param.FilePath);
TData obj = await userBLL.ImportUser(param, list);
return Json(obj);
}
方法ImportFromExcel 会根据传入的 Excel 文件相对路径,找到文件的绝对路径。Excel 的第一行是标题, 第二行是列名,列名可以是实体类的属性名称或者实体类属性名称的Description 描述。
Excel导出
Excel 导出可以根据界面的搜索条件,后台设置需要导出的列,导出所有符合条件的记录。
1.前端写法
<a id="btnExport" class="btn btn-warning" onclick="exportForm()"><i class="fa fa-download"></i> 导出</a>
function exportForm() {
var url = '@Url.Content("~/OrganizationManage/User/ExportUserJson")';
var postData = $("#searchDiv").getWebControls();
ys.exportExcel(url, postData);
}
2.后端写法
[HttpPost]
public async Task<IActionResult> ExportUserJson(UserListParam param)
{
TData<string> obj = new();
TData<List<UserEntity>> userObj = await userBLL.GetList(param);
if (userObj.Tag == 1)
{
string file = new ExcelHelper<UserEntity>().ExportToExcel("用户列表.xls",
"用户列表",
userObj.Data,
new string[] { "UserName", "RealName", "Gender", "Mobile", "Email" });
obj.Data = file;
obj.Tag = 1;
}
return Json(obj);
}
更多推荐
已为社区贡献2条内容
所有评论(0)