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);
- }
复制代码
来源:https://blog.csdn.net/sakenc/article/details/118291631 免责声明:如果侵犯了您的权益,请联系站长,我们会及时删除侵权内容,谢谢合作! |