257 lines
65 KiB
HTML
257 lines
65 KiB
HTML
<!DOCTYPE html>
|
||
<html lang="en-US">
|
||
<head>
|
||
<meta charset="utf-8">
|
||
<meta name="viewport" content="width=device-width,initial-scale=1">
|
||
<title>EasyExcel 上传(导入) | WGINK</title>
|
||
<meta name="generator" content="VuePress 1.9.7">
|
||
|
||
<meta name="description" content="">
|
||
|
||
<link rel="preload" href="/assets/css/0.styles.098b46e5.css" as="style"><link rel="preload" href="/assets/js/app.8419454b.js" as="script"><link rel="preload" href="/assets/js/2.3324ea8d.js" as="script"><link rel="preload" href="/assets/js/9.07f1828d.js" as="script"><link rel="prefetch" href="/assets/js/10.1698a97b.js"><link rel="prefetch" href="/assets/js/11.24b85a91.js"><link rel="prefetch" href="/assets/js/12.194e06f2.js"><link rel="prefetch" href="/assets/js/13.128ee0cc.js"><link rel="prefetch" href="/assets/js/14.931aed60.js"><link rel="prefetch" href="/assets/js/15.be64026d.js"><link rel="prefetch" href="/assets/js/16.8675e2d6.js"><link rel="prefetch" href="/assets/js/17.1ade9db3.js"><link rel="prefetch" href="/assets/js/3.332e57f2.js"><link rel="prefetch" href="/assets/js/4.a3c79904.js"><link rel="prefetch" href="/assets/js/5.f16cfca9.js"><link rel="prefetch" href="/assets/js/6.19a486e1.js"><link rel="prefetch" href="/assets/js/7.9efeaebf.js"><link rel="prefetch" href="/assets/js/8.7dc718e0.js">
|
||
<link rel="stylesheet" href="/assets/css/0.styles.098b46e5.css">
|
||
</head>
|
||
<body>
|
||
<div id="app" data-server-rendered="true"><div class="theme-container"><header class="navbar"><div class="sidebar-button"><svg xmlns="http://www.w3.org/2000/svg" aria-hidden="true" role="img" viewBox="0 0 448 512" class="icon"><path fill="currentColor" d="M436 124H12c-6.627 0-12-5.373-12-12V80c0-6.627 5.373-12 12-12h424c6.627 0 12 5.373 12 12v32c0 6.627-5.373 12-12 12zm0 160H12c-6.627 0-12-5.373-12-12v-32c0-6.627 5.373-12 12-12h424c6.627 0 12 5.373 12 12v32c0 6.627-5.373 12-12 12zm0 160H12c-6.627 0-12-5.373-12-12v-32c0-6.627 5.373-12 12-12h424c6.627 0 12 5.373 12 12v32c0 6.627-5.373 12-12 12z"></path></svg></div> <a href="/" class="home-link router-link-active"><!----> <span class="site-name">WGINK</span></a> <div class="links"><div class="search-box"><input aria-label="Search" autocomplete="off" spellcheck="false" value=""> <!----></div> <!----></div></header> <div class="sidebar-mask"></div> <aside class="sidebar"><!----> <ul class="sidebar-links"><li><a href="/" aria-current="page" class="sidebar-link">首页</a></li><li><section class="sidebar-group collapsable depth-0"><p class="sidebar-heading"><span>业务</span> <span class="arrow right"></span></p> <!----></section></li><li><section class="sidebar-group collapsable depth-0"><p class="sidebar-heading open"><span>代码模板</span> <span class="arrow down"></span></p> <ul class="sidebar-links sidebar-group-items"><li><a href="/code-template/area-select.html" class="sidebar-link">地区选择</a></li><li><a href="/code-template/excel-upload.html" aria-current="page" class="active sidebar-link">EasyExcel 上传(导入)</a><ul class="sidebar-sub-headers"><li class="sidebar-sub-header"><a href="/code-template/excel-upload.html#excel实体类" class="sidebar-link">Excel实体类</a></li><li class="sidebar-sub-header"><a href="/code-template/excel-upload.html#错误试题类" class="sidebar-link">错误试题类</a></li><li class="sidebar-sub-header"><a href="/code-template/excel-upload.html#监听器" class="sidebar-link">监听器</a></li><li class="sidebar-sub-header"><a href="/code-template/excel-upload.html#导入代码" class="sidebar-link">导入代码</a><ul class="sidebar-sub-headers"><li class="sidebar-sub-header"><a href="/code-template/excel-upload.html#controller-层" class="sidebar-link">controller 层</a></li><li class="sidebar-sub-header"><a href="/code-template/excel-upload.html#service-层" class="sidebar-link">service 层</a></li></ul></li><li class="sidebar-sub-header"><a href="/code-template/excel-upload.html#模板下载接口" class="sidebar-link">模板下载接口</a></li><li class="sidebar-sub-header"><a href="/code-template/excel-upload.html#列表导入按钮" class="sidebar-link">列表导入按钮</a></li><li class="sidebar-sub-header"><a href="/code-template/excel-upload.html#列表导入事件" class="sidebar-link">列表导入事件</a></li><li class="sidebar-sub-header"><a href="/code-template/excel-upload.html#导入页面代码" class="sidebar-link">导入页面代码</a></li></ul></li><li><a href="/code-template/select.html" class="sidebar-link">下拉选择</a></li><li><a href="/code-template/list-select.html" class="sidebar-link">列表选择</a></li><li><a href="/code-template/layui-util.html" class="sidebar-link">layui工具</a></li></ul></section></li></ul> </aside> <main class="page"> <div class="theme-default-content content__default"><h1 id="easyexcel-上传-导入"><a href="#easyexcel-上传-导入" class="header-anchor">#</a> EasyExcel 上传(导入)</h1> <p>以人口(Population)导入为例:</p> <ol><li><p>包含 <strong>Excel实体类</strong>、<strong>错误实体类</strong>、<strong>导入监听器</strong>,其中 <strong>错误实体类</strong> 非必须。</p></li> <li><p>如果不需要返回错误,可忽略输出错误文件的代码。</p></li></ol> <h2 id="excel实体类"><a href="#excel实体类" class="header-anchor">#</a> Excel实体类</h2> <div class="language-java extra-class"><pre class="language-java"><code><span class="token keyword">import</span> <span class="token import"><span class="token namespace">com<span class="token punctuation">.</span>alibaba<span class="token punctuation">.</span>excel<span class="token punctuation">.</span>annotation<span class="token punctuation">.</span></span><span class="token class-name">ExcelProperty</span></span><span class="token punctuation">;</span>
|
||
|
||
<span class="token keyword">public</span> <span class="token keyword">class</span> <span class="token class-name">PopulationExcel</span> <span class="token punctuation">{</span>
|
||
|
||
<span class="token annotation punctuation">@ExcelProperty</span><span class="token punctuation">(</span>index <span class="token operator">=</span> <span class="token number">0</span><span class="token punctuation">)</span>
|
||
<span class="token keyword">private</span> <span class="token class-name">String</span> name<span class="token punctuation">;</span>
|
||
<span class="token annotation punctuation">@ExcelProperty</span><span class="token punctuation">(</span>index <span class="token operator">=</span> <span class="token number">1</span><span class="token punctuation">)</span>
|
||
<span class="token keyword">private</span> <span class="token class-name">String</span> idCard<span class="token punctuation">;</span>
|
||
<span class="token annotation punctuation">@ExcelProperty</span><span class="token punctuation">(</span>index <span class="token operator">=</span> <span class="token number">2</span><span class="token punctuation">)</span>
|
||
<span class="token keyword">private</span> <span class="token class-name">String</span> areaCode<span class="token punctuation">;</span>
|
||
<span class="token annotation punctuation">@ExcelProperty</span><span class="token punctuation">(</span>index <span class="token operator">=</span> <span class="token number">3</span><span class="token punctuation">)</span>
|
||
<span class="token keyword">private</span> <span class="token class-name">String</span> homeAddress<span class="token punctuation">;</span>
|
||
|
||
<span class="token comment">// get set</span>
|
||
<span class="token punctuation">}</span>
|
||
|
||
</code></pre></div><h2 id="错误试题类"><a href="#错误试题类" class="header-anchor">#</a> 错误试题类</h2> <div class="language-java extra-class"><pre class="language-java"><code><span class="token keyword">import</span> <span class="token import"><span class="token namespace">com<span class="token punctuation">.</span>alibaba<span class="token punctuation">.</span>excel<span class="token punctuation">.</span>annotation<span class="token punctuation">.</span></span><span class="token class-name">ExcelProperty</span></span><span class="token punctuation">;</span>
|
||
|
||
<span class="token keyword">public</span> <span class="token keyword">class</span> <span class="token class-name">PopulationExcelError</span> <span class="token punctuation">{</span>
|
||
|
||
<span class="token annotation punctuation">@ExcelProperty</span><span class="token punctuation">(</span>index <span class="token operator">=</span> <span class="token number">0</span><span class="token punctuation">)</span>
|
||
<span class="token keyword">private</span> <span class="token class-name">String</span> name<span class="token punctuation">;</span>
|
||
<span class="token annotation punctuation">@ExcelProperty</span><span class="token punctuation">(</span>index <span class="token operator">=</span> <span class="token number">1</span><span class="token punctuation">)</span>
|
||
<span class="token keyword">private</span> <span class="token class-name">String</span> idCard<span class="token punctuation">;</span>
|
||
<span class="token annotation punctuation">@ExcelProperty</span><span class="token punctuation">(</span>index <span class="token operator">=</span> <span class="token number">2</span><span class="token punctuation">)</span>
|
||
<span class="token keyword">private</span> <span class="token class-name">String</span> areaCode<span class="token punctuation">;</span>
|
||
<span class="token annotation punctuation">@ExcelProperty</span><span class="token punctuation">(</span>index <span class="token operator">=</span> <span class="token number">3</span><span class="token punctuation">)</span>
|
||
<span class="token keyword">private</span> <span class="token class-name">String</span> homeAddress<span class="token punctuation">;</span>
|
||
<span class="token annotation punctuation">@ExcelProperty</span><span class="token punctuation">(</span>index <span class="token operator">=</span> <span class="token number">4</span><span class="token punctuation">)</span>
|
||
<span class="token keyword">private</span> <span class="token class-name">String</span> reason<span class="token punctuation">;</span>
|
||
|
||
<span class="token comment">// get set</span>
|
||
<span class="token punctuation">}</span>
|
||
|
||
</code></pre></div><h2 id="监听器"><a href="#监听器" class="header-anchor">#</a> 监听器</h2> <div class="language-java extra-class"><pre class="language-java"><code><span class="token keyword">import</span> <span class="token import"><span class="token namespace">com<span class="token punctuation">.</span>alibaba<span class="token punctuation">.</span>excel<span class="token punctuation">.</span>context<span class="token punctuation">.</span></span><span class="token class-name">AnalysisContext</span></span><span class="token punctuation">;</span>
|
||
<span class="token keyword">import</span> <span class="token import"><span class="token namespace">com<span class="token punctuation">.</span>alibaba<span class="token punctuation">.</span>excel<span class="token punctuation">.</span>event<span class="token punctuation">.</span></span><span class="token class-name">AnalysisEventListener</span></span><span class="token punctuation">;</span>
|
||
|
||
<span class="token keyword">import</span> <span class="token import"><span class="token namespace">java<span class="token punctuation">.</span>util<span class="token punctuation">.</span></span><span class="token class-name">ArrayList</span></span><span class="token punctuation">;</span>
|
||
<span class="token keyword">import</span> <span class="token import"><span class="token namespace">java<span class="token punctuation">.</span>util<span class="token punctuation">.</span></span><span class="token class-name">List</span></span><span class="token punctuation">;</span>
|
||
|
||
<span class="token keyword">public</span> <span class="token keyword">abstract</span> <span class="token keyword">class</span> <span class="token class-name">PopulationExcelListener</span> <span class="token keyword">extends</span> <span class="token class-name">AnalysisEventListener</span><span class="token generics"><span class="token punctuation"><</span><span class="token class-name">PopulationExcel</span><span class="token punctuation">></span></span> <span class="token punctuation">{</span>
|
||
|
||
<span class="token keyword">private</span> <span class="token keyword">static</span> <span class="token keyword">final</span> <span class="token class-name">Integer</span> MAX_READ_COUNT <span class="token operator">=</span> <span class="token number">100</span><span class="token punctuation">;</span>
|
||
<span class="token keyword">private</span> <span class="token class-name">List</span><span class="token generics"><span class="token punctuation"><</span><span class="token class-name">PopulationExcel</span><span class="token punctuation">></span></span> populationExcels <span class="token operator">=</span> <span class="token keyword">new</span> <span class="token class-name">ArrayList</span><span class="token generics"><span class="token punctuation"><</span><span class="token punctuation">></span></span><span class="token punctuation">(</span><span class="token punctuation">)</span><span class="token punctuation">;</span>
|
||
|
||
<span class="token annotation punctuation">@Override</span>
|
||
<span class="token keyword">public</span> <span class="token keyword">void</span> <span class="token function">invoke</span><span class="token punctuation">(</span><span class="token class-name">PopulationExcel</span> populationExcel<span class="token punctuation">,</span> <span class="token class-name">AnalysisContext</span> analysisContext<span class="token punctuation">)</span> <span class="token punctuation">{</span>
|
||
<span class="token keyword">if</span> <span class="token punctuation">(</span>populationExcels<span class="token punctuation">.</span><span class="token function">size</span><span class="token punctuation">(</span><span class="token punctuation">)</span> <span class="token operator">></span> MAX_READ_COUNT<span class="token punctuation">)</span> <span class="token punctuation">{</span>
|
||
<span class="token comment">// 超过读取最大量,执行保存,</span>
|
||
<span class="token function">handle</span><span class="token punctuation">(</span>populationExcels<span class="token punctuation">)</span><span class="token punctuation">;</span>
|
||
populationExcels<span class="token punctuation">.</span><span class="token function">clear</span><span class="token punctuation">(</span><span class="token punctuation">)</span><span class="token punctuation">;</span>
|
||
<span class="token punctuation">}</span> <span class="token keyword">else</span> <span class="token punctuation">{</span>
|
||
<span class="token comment">// 未达到读取最大量,继续读取</span>
|
||
populationExcels<span class="token punctuation">.</span><span class="token function">add</span><span class="token punctuation">(</span>populationExcel<span class="token punctuation">)</span><span class="token punctuation">;</span>
|
||
<span class="token punctuation">}</span>
|
||
<span class="token punctuation">}</span>
|
||
|
||
<span class="token annotation punctuation">@Override</span>
|
||
<span class="token keyword">public</span> <span class="token keyword">void</span> <span class="token function">doAfterAllAnalysed</span><span class="token punctuation">(</span><span class="token class-name">AnalysisContext</span> analysisContext<span class="token punctuation">)</span> <span class="token punctuation">{</span>
|
||
<span class="token function">handle</span><span class="token punctuation">(</span>populationExcels<span class="token punctuation">)</span><span class="token punctuation">;</span>
|
||
populationExcels<span class="token punctuation">.</span><span class="token function">clear</span><span class="token punctuation">(</span><span class="token punctuation">)</span><span class="token punctuation">;</span>
|
||
<span class="token punctuation">}</span>
|
||
|
||
<span class="token comment">/**
|
||
* 处理
|
||
*
|
||
* @param rows
|
||
*/</span>
|
||
<span class="token keyword">public</span> <span class="token keyword">abstract</span> <span class="token keyword">void</span> <span class="token function">handle</span><span class="token punctuation">(</span><span class="token class-name">List</span><span class="token generics"><span class="token punctuation"><</span><span class="token class-name">PopulationExcel</span><span class="token punctuation">></span></span> rows<span class="token punctuation">)</span><span class="token punctuation">;</span>
|
||
|
||
<span class="token punctuation">}</span>
|
||
</code></pre></div><h2 id="导入代码"><a href="#导入代码" class="header-anchor">#</a> 导入代码</h2> <h3 id="controller-层"><a href="#controller-层" class="header-anchor">#</a> controller 层</h3> <div class="language-java extra-class"><pre class="language-java"><code><span class="token annotation punctuation">@ApiOperation</span><span class="token punctuation">(</span>value <span class="token operator">=</span> <span class="token string">"试题Excel"</span><span class="token punctuation">,</span> notes <span class="token operator">=</span> <span class="token string">"试题Excel接口"</span><span class="token punctuation">)</span>
|
||
<span class="token annotation punctuation">@ApiImplicitParams</span><span class="token punctuation">(</span><span class="token punctuation">{</span>
|
||
<span class="token annotation punctuation">@ApiImplicitParam</span><span class="token punctuation">(</span>name <span class="token operator">=</span> <span class="token string">"excel"</span><span class="token punctuation">,</span> value <span class="token operator">=</span> <span class="token string">"文件名称"</span><span class="token punctuation">,</span> paramType <span class="token operator">=</span> <span class="token string">"form"</span><span class="token punctuation">)</span><span class="token punctuation">,</span>
|
||
<span class="token punctuation">}</span><span class="token punctuation">)</span>
|
||
<span class="token annotation punctuation">@ApiResponses</span><span class="token punctuation">(</span><span class="token punctuation">{</span><span class="token annotation punctuation">@ApiResponse</span><span class="token punctuation">(</span>code <span class="token operator">=</span> <span class="token number">400</span><span class="token punctuation">,</span> message <span class="token operator">=</span> <span class="token string">"请求失败"</span><span class="token punctuation">,</span> response <span class="token operator">=</span> <span class="token class-name">ErrorResult</span><span class="token punctuation">.</span><span class="token keyword">class</span><span class="token punctuation">)</span><span class="token punctuation">}</span><span class="token punctuation">)</span>
|
||
<span class="token annotation punctuation">@PostMapping</span><span class="token punctuation">(</span><span class="token string">"import-excel"</span><span class="token punctuation">)</span>
|
||
<span class="token keyword">public</span> <span class="token class-name">UploadExcelResultDTO</span> <span class="token function">importExcel</span><span class="token punctuation">(</span><span class="token class-name">MultipartFile</span> excel<span class="token punctuation">)</span> <span class="token keyword">throws</span> <span class="token class-name">IOException</span> <span class="token punctuation">{</span>
|
||
<span class="token keyword">if</span> <span class="token punctuation">(</span><span class="token class-name">Objects</span><span class="token punctuation">.</span><span class="token function">isNull</span><span class="token punctuation">(</span>excel<span class="token punctuation">)</span><span class="token punctuation">)</span> <span class="token punctuation">{</span>
|
||
<span class="token keyword">throw</span> <span class="token keyword">new</span> <span class="token class-name">ParamsException</span><span class="token punctuation">(</span><span class="token string">"Excel不能为空"</span><span class="token punctuation">)</span><span class="token punctuation">;</span>
|
||
<span class="token punctuation">}</span>
|
||
<span class="token comment">// 判断后缀</span>
|
||
<span class="token keyword">if</span> <span class="token punctuation">(</span><span class="token operator">!</span>excel<span class="token punctuation">.</span><span class="token function">getOriginalFilename</span><span class="token punctuation">(</span><span class="token punctuation">)</span><span class="token punctuation">.</span><span class="token function">endsWith</span><span class="token punctuation">(</span><span class="token class-name">IFileConstant</span><span class="token punctuation">.</span>EXCEL_SUFFIX_XLS<span class="token punctuation">)</span>
|
||
<span class="token operator">&&</span> <span class="token operator">!</span>excel<span class="token punctuation">.</span><span class="token function">getOriginalFilename</span><span class="token punctuation">(</span><span class="token punctuation">)</span><span class="token punctuation">.</span><span class="token function">endsWith</span><span class="token punctuation">(</span><span class="token class-name">IFileConstant</span><span class="token punctuation">.</span>EXCEL_SUFFIX_XLSX<span class="token punctuation">)</span><span class="token punctuation">)</span> <span class="token punctuation">{</span>
|
||
<span class="token keyword">throw</span> <span class="token keyword">new</span> <span class="token class-name">ParamsException</span><span class="token punctuation">(</span><span class="token string">"文件格式为Excel"</span><span class="token punctuation">)</span><span class="token punctuation">;</span>
|
||
<span class="token punctuation">}</span>
|
||
<span class="token keyword">return</span> populationService<span class="token punctuation">.</span><span class="token function">importExcel</span><span class="token punctuation">(</span>excel<span class="token punctuation">)</span><span class="token punctuation">;</span>
|
||
<span class="token punctuation">}</span>
|
||
</code></pre></div><h3 id="service-层"><a href="#service-层" class="header-anchor">#</a> service 层</h3> <div class="language-java extra-class"><pre class="language-java"><code><span class="token annotation punctuation">@Override</span>
|
||
<span class="token keyword">public</span> <span class="token class-name">UploadExcelResultDTO</span> <span class="token function">importExcel</span><span class="token punctuation">(</span><span class="token class-name">MultipartFile</span> excel<span class="token punctuation">)</span> <span class="token keyword">throws</span> <span class="token class-name">IOException</span> <span class="token punctuation">{</span>
|
||
|
||
<span class="token comment">// 要输出的错误内容</span>
|
||
<span class="token class-name">List</span><span class="token generics"><span class="token punctuation"><</span><span class="token class-name">PopulationExcelError</span><span class="token punctuation">></span></span> populationExcelErrors <span class="token operator">=</span> <span class="token keyword">new</span> <span class="token class-name">ArrayList</span><span class="token generics"><span class="token punctuation"><</span><span class="token punctuation">></span></span><span class="token punctuation">(</span><span class="token punctuation">)</span><span class="token punctuation">;</span>
|
||
|
||
<span class="token keyword">long</span> startTime <span class="token operator">=</span> <span class="token class-name">System</span><span class="token punctuation">.</span><span class="token function">currentTimeMillis</span><span class="token punctuation">(</span><span class="token punctuation">)</span><span class="token punctuation">;</span>
|
||
<span class="token comment">// 读取 Excel</span>
|
||
<span class="token class-name">EasyExcel</span><span class="token punctuation">.</span><span class="token function">read</span><span class="token punctuation">(</span>excel<span class="token punctuation">.</span><span class="token function">getInputStream</span><span class="token punctuation">(</span><span class="token punctuation">)</span><span class="token punctuation">,</span> <span class="token class-name">PopulationExcel</span><span class="token punctuation">.</span><span class="token keyword">class</span><span class="token punctuation">,</span> <span class="token keyword">new</span> <span class="token class-name">PopulationExcelListener</span><span class="token punctuation">(</span><span class="token punctuation">)</span> <span class="token punctuation">{</span>
|
||
<span class="token annotation punctuation">@Override</span>
|
||
<span class="token keyword">public</span> <span class="token keyword">void</span> <span class="token function">handle</span><span class="token punctuation">(</span><span class="token class-name">List</span><span class="token generics"><span class="token punctuation"><</span><span class="token class-name">PopulationExcel</span><span class="token punctuation">></span></span> populationExcels<span class="token punctuation">)</span> <span class="token punctuation">{</span>
|
||
<span class="token comment">// 这里处理数据,一般是入库</span>
|
||
|
||
<span class="token punctuation">}</span>
|
||
<span class="token punctuation">}</span><span class="token punctuation">)</span><span class="token punctuation">.</span><span class="token function">headRowNumber</span><span class="token punctuation">(</span><span class="token number">2</span><span class="token punctuation">)</span><span class="token punctuation">.</span><span class="token function">sheet</span><span class="token punctuation">(</span><span class="token punctuation">)</span><span class="token punctuation">.</span><span class="token function">doRead</span><span class="token punctuation">(</span><span class="token punctuation">)</span><span class="token punctuation">;</span>
|
||
<span class="token keyword">long</span> endTime <span class="token operator">=</span> <span class="token class-name">System</span><span class="token punctuation">.</span><span class="token function">currentTimeMillis</span><span class="token punctuation">(</span><span class="token punctuation">)</span><span class="token punctuation">;</span>
|
||
|
||
<span class="token comment">// 生成的错误文件ID,下载时使用</span>
|
||
<span class="token class-name">String</span> excelFileId <span class="token operator">=</span> <span class="token keyword">null</span><span class="token punctuation">;</span>
|
||
<span class="token keyword">if</span> <span class="token punctuation">(</span>populationExcelErrors<span class="token punctuation">.</span><span class="token function">size</span><span class="token punctuation">(</span><span class="token punctuation">)</span> <span class="token operator">></span> <span class="token number">0</span><span class="token punctuation">)</span> <span class="token punctuation">{</span>
|
||
excelFileId <span class="token operator">=</span> <span class="token keyword">new</span> <span class="token class-name">AbstractErrorExcelHandler</span><span class="token generics"><span class="token punctuation"><</span><span class="token class-name">PopulationExcelError</span><span class="token punctuation">></span></span><span class="token punctuation">(</span>fileService<span class="token punctuation">)</span> <span class="token punctuation">{</span>
|
||
<span class="token annotation punctuation">@Override</span>
|
||
<span class="token keyword">public</span> <span class="token class-name">List</span><span class="token generics"><span class="token punctuation"><</span><span class="token class-name">List</span><span class="token punctuation"><</span><span class="token class-name">String</span><span class="token punctuation">></span><span class="token punctuation">></span></span> <span class="token function">excelHeaderNames</span><span class="token punctuation">(</span><span class="token punctuation">)</span> <span class="token punctuation">{</span>
|
||
<span class="token comment">// 构建错误 Excel 标题,与错误类对应</span>
|
||
<span class="token keyword">return</span> <span class="token function">simpleExcelHeader</span><span class="token punctuation">(</span><span class="token keyword">new</span> <span class="token class-name">String</span><span class="token punctuation">[</span><span class="token punctuation">]</span><span class="token punctuation">{</span><span class="token string">"序号"</span><span class="token punctuation">,</span> <span class="token string">"姓名"</span><span class="token punctuation">,</span> <span class="token string">"身份证"</span><span class="token punctuation">,</span> <span class="token string">"错误原因"</span><span class="token punctuation">}</span><span class="token punctuation">)</span><span class="token punctuation">;</span>
|
||
<span class="token punctuation">}</span>
|
||
<span class="token punctuation">}</span><span class="token punctuation">.</span><span class="token function">saveErrorExcel</span><span class="token punctuation">(</span>populationExcelErrors<span class="token punctuation">)</span><span class="token punctuation">;</span>
|
||
<span class="token punctuation">}</span>
|
||
<span class="token comment">// 返回实体类,</span>
|
||
<span class="token keyword">return</span> <span class="token keyword">new</span> <span class="token class-name">UploadExcelResultDTO</span><span class="token punctuation">(</span>populationExcelErrors<span class="token punctuation">.</span><span class="token function">size</span><span class="token punctuation">(</span><span class="token punctuation">)</span><span class="token punctuation">,</span> endTime <span class="token operator">-</span> startTime<span class="token punctuation">,</span> excelFileId<span class="token punctuation">)</span><span class="token punctuation">;</span>
|
||
<span class="token punctuation">}</span>
|
||
</code></pre></div><h2 id="模板下载接口"><a href="#模板下载接口" class="header-anchor">#</a> 模板下载接口</h2> <div class="language-java extra-class"><pre class="language-java"><code><span class="token annotation punctuation">@GetMapping</span><span class="token punctuation">(</span><span class="token string">"upload/upload-excel-template"</span><span class="token punctuation">)</span>
|
||
<span class="token keyword">public</span> <span class="token keyword">void</span> <span class="token function">excelTemplate</span><span class="token punctuation">(</span><span class="token class-name">HttpServletResponse</span> response<span class="token punctuation">)</span> <span class="token keyword">throws</span> <span class="token class-name">IOException</span> <span class="token punctuation">{</span>
|
||
<span class="token class-name">InputStream</span> inputStream <span class="token operator">=</span> <span class="token class-name">PopulationRouteController</span><span class="token punctuation">.</span><span class="token keyword">class</span><span class="token punctuation">.</span><span class="token function">getClassLoader</span><span class="token punctuation">(</span><span class="token punctuation">)</span><span class="token punctuation">.</span><span class="token function">getResourceAsStream</span><span class="token punctuation">(</span><span class="token string">"templates/population/upload/upload-excel-template.xls"</span><span class="token punctuation">)</span><span class="token punctuation">;</span>
|
||
<span class="token class-name">RequestUtil</span><span class="token punctuation">.</span><span class="token function">download</span><span class="token punctuation">(</span>response<span class="token punctuation">,</span> inputStream<span class="token punctuation">,</span> <span class="token string">"人口导入模板.xls"</span><span class="token punctuation">)</span><span class="token punctuation">;</span>
|
||
<span class="token punctuation">}</span>
|
||
</code></pre></div><h2 id="列表导入按钮"><a href="#列表导入按钮" class="header-anchor">#</a> 列表导入按钮</h2> <div class="language-html extra-class"><pre class="language-html"><code><span class="token tag"><span class="token tag"><span class="token punctuation"><</span>button</span> <span class="token attr-name">type</span><span class="token attr-value"><span class="token punctuation attr-equals">=</span><span class="token punctuation">"</span>button<span class="token punctuation">"</span></span> <span class="token attr-name">class</span><span class="token attr-value"><span class="token punctuation attr-equals">=</span><span class="token punctuation">"</span>layui-btn layui-btn-sm<span class="token punctuation">"</span></span> <span class="token attr-name">id</span><span class="token attr-value"><span class="token punctuation attr-equals">=</span><span class="token punctuation">"</span>uploadExcel<span class="token punctuation">"</span></span><span class="token punctuation">></span></span>
|
||
<span class="token tag"><span class="token tag"><span class="token punctuation"><</span>i</span> <span class="token attr-name">class</span><span class="token attr-value"><span class="token punctuation attr-equals">=</span><span class="token punctuation">"</span>fa fa-lg fa-cloud-upload<span class="token punctuation">"</span></span><span class="token punctuation">></span></span><span class="token tag"><span class="token tag"><span class="token punctuation"></</span>i</span><span class="token punctuation">></span></span> 导入数据
|
||
<span class="token tag"><span class="token tag"><span class="token punctuation"></</span>button</span><span class="token punctuation">></span></span>
|
||
</code></pre></div><h2 id="列表导入事件"><a href="#列表导入事件" class="header-anchor">#</a> 列表导入事件</h2> <div class="language-javascript extra-class"><pre class="language-javascript"><code><span class="token function">$</span><span class="token punctuation">(</span>document<span class="token punctuation">)</span><span class="token punctuation">.</span><span class="token function">on</span><span class="token punctuation">(</span><span class="token string">'click'</span><span class="token punctuation">,</span> <span class="token string">'#uploadExcel'</span><span class="token punctuation">,</span> <span class="token keyword">function</span><span class="token punctuation">(</span><span class="token punctuation">)</span> <span class="token punctuation">{</span>
|
||
top<span class="token punctuation">.</span>dialog<span class="token punctuation">.</span><span class="token function">open</span><span class="token punctuation">(</span><span class="token punctuation">{</span>
|
||
<span class="token literal-property property">url</span><span class="token operator">:</span> top<span class="token punctuation">.</span>restAjax<span class="token punctuation">.</span><span class="token function">path</span><span class="token punctuation">(</span><span class="token string">'route/population/upload/upload-excel'</span><span class="token punctuation">,</span> <span class="token punctuation">[</span><span class="token punctuation">]</span><span class="token punctuation">)</span><span class="token punctuation">,</span>
|
||
<span class="token literal-property property">title</span><span class="token operator">:</span> <span class="token string">'导入人口数据'</span><span class="token punctuation">,</span>
|
||
<span class="token literal-property property">width</span><span class="token operator">:</span> <span class="token string">'300px'</span><span class="token punctuation">,</span>
|
||
<span class="token literal-property property">height</span><span class="token operator">:</span> <span class="token string">'196px'</span><span class="token punctuation">,</span>
|
||
<span class="token function-variable function">onClose</span><span class="token operator">:</span> <span class="token keyword">function</span><span class="token punctuation">(</span><span class="token punctuation">)</span> <span class="token punctuation">{</span>
|
||
<span class="token function">reloadTable</span><span class="token punctuation">(</span><span class="token punctuation">)</span><span class="token punctuation">;</span>
|
||
<span class="token punctuation">}</span>
|
||
<span class="token punctuation">}</span><span class="token punctuation">)</span><span class="token punctuation">;</span>
|
||
<span class="token punctuation">}</span><span class="token punctuation">)</span><span class="token punctuation">;</span>
|
||
</code></pre></div><h2 id="导入页面代码"><a href="#导入页面代码" class="header-anchor">#</a> 导入页面代码</h2> <div class="language-html extra-class"><pre class="language-html"><code><span class="token doctype"><span class="token punctuation"><!</span><span class="token doctype-tag">doctype</span> <span class="token name">html</span><span class="token punctuation">></span></span>
|
||
<span class="token tag"><span class="token tag"><span class="token punctuation"><</span>html</span> <span class="token attr-name"><span class="token namespace">xmlns:</span>th</span><span class="token attr-value"><span class="token punctuation attr-equals">=</span><span class="token punctuation">"</span>http://www.thymeleaf.org<span class="token punctuation">"</span></span><span class="token punctuation">></span></span>
|
||
<span class="token tag"><span class="token tag"><span class="token punctuation"><</span>head</span><span class="token punctuation">></span></span>
|
||
<span class="token tag"><span class="token tag"><span class="token punctuation"><</span>base</span> <span class="token attr-name"><span class="token namespace">th:</span>href</span><span class="token attr-value"><span class="token punctuation attr-equals">=</span><span class="token punctuation">"</span>${#request.getContextPath() + <span class="token punctuation">'</span>/<span class="token punctuation">'</span>}<span class="token punctuation">"</span></span><span class="token punctuation">></span></span>
|
||
<span class="token tag"><span class="token tag"><span class="token punctuation"><</span>meta</span> <span class="token attr-name">charset</span><span class="token attr-value"><span class="token punctuation attr-equals">=</span><span class="token punctuation">"</span>utf-8<span class="token punctuation">"</span></span><span class="token punctuation">></span></span>
|
||
<span class="token tag"><span class="token tag"><span class="token punctuation"><</span>meta</span> <span class="token attr-name">name</span><span class="token attr-value"><span class="token punctuation attr-equals">=</span><span class="token punctuation">"</span>renderer<span class="token punctuation">"</span></span> <span class="token attr-name">content</span><span class="token attr-value"><span class="token punctuation attr-equals">=</span><span class="token punctuation">"</span>webkit<span class="token punctuation">"</span></span><span class="token punctuation">></span></span>
|
||
<span class="token tag"><span class="token tag"><span class="token punctuation"><</span>meta</span> <span class="token attr-name">http-equiv</span><span class="token attr-value"><span class="token punctuation attr-equals">=</span><span class="token punctuation">"</span>X-UA-Compatible<span class="token punctuation">"</span></span> <span class="token attr-name">content</span><span class="token attr-value"><span class="token punctuation attr-equals">=</span><span class="token punctuation">"</span>IE=edge,chrome=1<span class="token punctuation">"</span></span><span class="token punctuation">></span></span>
|
||
<span class="token tag"><span class="token tag"><span class="token punctuation"><</span>meta</span> <span class="token attr-name">name</span><span class="token attr-value"><span class="token punctuation attr-equals">=</span><span class="token punctuation">"</span>viewport<span class="token punctuation">"</span></span> <span class="token attr-name">content</span><span class="token attr-value"><span class="token punctuation attr-equals">=</span><span class="token punctuation">"</span>width=device-width, initial-scale=1.0, minimum-scale=1.0, maximum-scale=1.0, user-scalable=0<span class="token punctuation">"</span></span><span class="token punctuation">></span></span>
|
||
<span class="token tag"><span class="token tag"><span class="token punctuation"><</span>link</span> <span class="token attr-name">rel</span><span class="token attr-value"><span class="token punctuation attr-equals">=</span><span class="token punctuation">"</span>stylesheet<span class="token punctuation">"</span></span> <span class="token attr-name">href</span><span class="token attr-value"><span class="token punctuation attr-equals">=</span><span class="token punctuation">"</span>assets/fonts/font-awesome/css/font-awesome.css<span class="token punctuation">"</span></span><span class="token punctuation">/></span></span>
|
||
<span class="token tag"><span class="token tag"><span class="token punctuation"><</span>link</span> <span class="token attr-name">rel</span><span class="token attr-value"><span class="token punctuation attr-equals">=</span><span class="token punctuation">"</span>stylesheet<span class="token punctuation">"</span></span> <span class="token attr-name">href</span><span class="token attr-value"><span class="token punctuation attr-equals">=</span><span class="token punctuation">"</span>assets/layuiadmin/layui/css/layui.css<span class="token punctuation">"</span></span> <span class="token attr-name">media</span><span class="token attr-value"><span class="token punctuation attr-equals">=</span><span class="token punctuation">"</span>all<span class="token punctuation">"</span></span><span class="token punctuation">></span></span>
|
||
<span class="token tag"><span class="token tag"><span class="token punctuation"><</span>link</span> <span class="token attr-name">rel</span><span class="token attr-value"><span class="token punctuation attr-equals">=</span><span class="token punctuation">"</span>stylesheet<span class="token punctuation">"</span></span> <span class="token attr-name">href</span><span class="token attr-value"><span class="token punctuation attr-equals">=</span><span class="token punctuation">"</span>assets/layuiadmin/style/admin.css<span class="token punctuation">"</span></span> <span class="token attr-name">media</span><span class="token attr-value"><span class="token punctuation attr-equals">=</span><span class="token punctuation">"</span>all<span class="token punctuation">"</span></span><span class="token punctuation">></span></span>
|
||
<span class="token tag"><span class="token tag"><span class="token punctuation"></</span>head</span><span class="token punctuation">></span></span>
|
||
<span class="token tag"><span class="token tag"><span class="token punctuation"><</span>body</span><span class="token punctuation">></span></span>
|
||
<span class="token tag"><span class="token tag"><span class="token punctuation"><</span>div</span> <span class="token attr-name">class</span><span class="token attr-value"><span class="token punctuation attr-equals">=</span><span class="token punctuation">"</span>layui-anim layui-anim-fadein<span class="token punctuation">"</span></span><span class="token punctuation">></span></span>
|
||
<span class="token tag"><span class="token tag"><span class="token punctuation"><</span>div</span> <span class="token attr-name">class</span><span class="token attr-value"><span class="token punctuation attr-equals">=</span><span class="token punctuation">"</span>layui-card<span class="token punctuation">"</span></span> <span class="token special-attr"><span class="token attr-name">style</span><span class="token attr-value"><span class="token punctuation attr-equals">=</span><span class="token punctuation">"</span><span class="token value css language-css"><span class="token property">text-align</span><span class="token punctuation">:</span> center<span class="token punctuation">;</span></span><span class="token punctuation">"</span></span></span><span class="token punctuation">></span></span>
|
||
<span class="token tag"><span class="token tag"><span class="token punctuation"><</span>div</span> <span class="token attr-name">class</span><span class="token attr-value"><span class="token punctuation attr-equals">=</span><span class="token punctuation">"</span>layui-card-body<span class="token punctuation">"</span></span> <span class="token special-attr"><span class="token attr-name">style</span><span class="token attr-value"><span class="token punctuation attr-equals">=</span><span class="token punctuation">"</span><span class="token value css language-css"><span class="token property">padding</span><span class="token punctuation">:</span> 15px<span class="token punctuation">;</span></span><span class="token punctuation">"</span></span></span><span class="token punctuation">></span></span>
|
||
<span class="token tag"><span class="token tag"><span class="token punctuation"><</span>blockquote</span> <span class="token attr-name">class</span><span class="token attr-value"><span class="token punctuation attr-equals">=</span><span class="token punctuation">"</span>layui-elem-quote<span class="token punctuation">"</span></span><span class="token punctuation">></span></span>下载“下载模板”整理数据,点击“导入数据”上传,格式为xls或xlsx<span class="token tag"><span class="token tag"><span class="token punctuation"></</span>blockquote</span><span class="token punctuation">></span></span>
|
||
<span class="token tag"><span class="token tag"><span class="token punctuation"><</span>button</span> <span class="token attr-name">id</span><span class="token attr-value"><span class="token punctuation attr-equals">=</span><span class="token punctuation">"</span>downloadFile<span class="token punctuation">"</span></span> <span class="token attr-name">type</span><span class="token attr-value"><span class="token punctuation attr-equals">=</span><span class="token punctuation">"</span>button<span class="token punctuation">"</span></span> <span class="token attr-name">class</span><span class="token attr-value"><span class="token punctuation attr-equals">=</span><span class="token punctuation">"</span>layui-btn layui-btn<span class="token punctuation">"</span></span> <span class="token special-attr"><span class="token attr-name">onclick</span><span class="token attr-value"><span class="token punctuation attr-equals">=</span><span class="token punctuation">"</span><span class="token value javascript language-javascript">window<span class="token punctuation">.</span><span class="token function">open</span><span class="token punctuation">(</span><span class="token string">'route/population/upload/upload-excel-template'</span><span class="token punctuation">,</span> <span class="token string">'downloadTarget'</span><span class="token punctuation">)</span></span><span class="token punctuation">"</span></span></span><span class="token punctuation">></span></span>
|
||
<span class="token tag"><span class="token tag"><span class="token punctuation"><</span>i</span> <span class="token attr-name">class</span><span class="token attr-value"><span class="token punctuation attr-equals">=</span><span class="token punctuation">"</span>fa fa-lg fa-cloud-download<span class="token punctuation">"</span></span><span class="token punctuation">></span></span><span class="token tag"><span class="token tag"><span class="token punctuation"></</span>i</span><span class="token punctuation">></span></span> 下载模板
|
||
<span class="token tag"><span class="token tag"><span class="token punctuation"></</span>button</span><span class="token punctuation">></span></span>
|
||
<span class="token tag"><span class="token tag"><span class="token punctuation"><</span>button</span> <span class="token attr-name">type</span><span class="token attr-value"><span class="token punctuation attr-equals">=</span><span class="token punctuation">"</span>button<span class="token punctuation">"</span></span> <span class="token attr-name">class</span><span class="token attr-value"><span class="token punctuation attr-equals">=</span><span class="token punctuation">"</span>layui-btn layui-btn<span class="token punctuation">"</span></span> <span class="token attr-name">id</span><span class="token attr-value"><span class="token punctuation attr-equals">=</span><span class="token punctuation">"</span>uploadExcel<span class="token punctuation">"</span></span><span class="token punctuation">></span></span>
|
||
<span class="token tag"><span class="token tag"><span class="token punctuation"><</span>i</span> <span class="token attr-name">class</span><span class="token attr-value"><span class="token punctuation attr-equals">=</span><span class="token punctuation">"</span>fa fa-lg fa-cloud-upload<span class="token punctuation">"</span></span><span class="token punctuation">></span></span><span class="token tag"><span class="token tag"><span class="token punctuation"></</span>i</span><span class="token punctuation">></span></span> 导入数据
|
||
<span class="token tag"><span class="token tag"><span class="token punctuation"></</span>button</span><span class="token punctuation">></span></span>
|
||
<span class="token tag"><span class="token tag"><span class="token punctuation"></</span>div</span><span class="token punctuation">></span></span>
|
||
<span class="token tag"><span class="token tag"><span class="token punctuation"></</span>div</span><span class="token punctuation">></span></span>
|
||
<span class="token tag"><span class="token tag"><span class="token punctuation"><</span>iframe</span> <span class="token special-attr"><span class="token attr-name">style</span><span class="token attr-value"><span class="token punctuation attr-equals">=</span><span class="token punctuation">"</span><span class="token value css language-css"><span class="token property">display</span><span class="token punctuation">:</span> none</span><span class="token punctuation">"</span></span></span> <span class="token attr-name">name</span><span class="token attr-value"><span class="token punctuation attr-equals">=</span><span class="token punctuation">"</span>downloadTarget<span class="token punctuation">"</span></span><span class="token punctuation">></span></span><span class="token tag"><span class="token tag"><span class="token punctuation"></</span>iframe</span><span class="token punctuation">></span></span>
|
||
<span class="token tag"><span class="token tag"><span class="token punctuation"></</span>div</span><span class="token punctuation">></span></span>
|
||
<span class="token tag"><span class="token tag"><span class="token punctuation"><</span>script</span> <span class="token attr-name">src</span><span class="token attr-value"><span class="token punctuation attr-equals">=</span><span class="token punctuation">"</span>assets/layuiadmin/layui/layui.js<span class="token punctuation">"</span></span><span class="token punctuation">></span></span><span class="token script"></span><span class="token tag"><span class="token tag"><span class="token punctuation"></</span>script</span><span class="token punctuation">></span></span>
|
||
<span class="token tag"><span class="token tag"><span class="token punctuation"><</span>script</span><span class="token punctuation">></span></span><span class="token script"><span class="token language-javascript">
|
||
layui<span class="token punctuation">.</span><span class="token function">config</span><span class="token punctuation">(</span><span class="token punctuation">{</span>
|
||
<span class="token literal-property property">base</span><span class="token operator">:</span> <span class="token string">'assets/layuiadmin/'</span> <span class="token comment">//静态资源所在路径</span>
|
||
<span class="token punctuation">}</span><span class="token punctuation">)</span><span class="token punctuation">.</span><span class="token function">extend</span><span class="token punctuation">(</span><span class="token punctuation">{</span>
|
||
<span class="token literal-property property">index</span><span class="token operator">:</span> <span class="token string">'lib/index'</span> <span class="token comment">//主入口模块</span>
|
||
<span class="token punctuation">}</span><span class="token punctuation">)</span><span class="token punctuation">.</span><span class="token function">use</span><span class="token punctuation">(</span><span class="token punctuation">[</span><span class="token string">'index'</span><span class="token punctuation">,</span> <span class="token string">'upload'</span><span class="token punctuation">,</span> <span class="token string">'common'</span><span class="token punctuation">]</span><span class="token punctuation">,</span> <span class="token keyword">function</span><span class="token punctuation">(</span><span class="token punctuation">)</span><span class="token punctuation">{</span>
|
||
<span class="token keyword">var</span> $ <span class="token operator">=</span> layui<span class="token punctuation">.</span>$<span class="token punctuation">;</span>
|
||
<span class="token keyword">var</span> form <span class="token operator">=</span> layui<span class="token punctuation">.</span>form<span class="token punctuation">;</span>
|
||
<span class="token keyword">var</span> common <span class="token operator">=</span> layui<span class="token punctuation">.</span>common<span class="token punctuation">;</span>
|
||
|
||
<span class="token keyword">function</span> <span class="token function">closeBox</span><span class="token punctuation">(</span><span class="token punctuation">)</span> <span class="token punctuation">{</span>
|
||
parent<span class="token punctuation">.</span>layer<span class="token punctuation">.</span><span class="token function">close</span><span class="token punctuation">(</span>parent<span class="token punctuation">.</span>layer<span class="token punctuation">.</span><span class="token function">getFrameIndex</span><span class="token punctuation">(</span>window<span class="token punctuation">.</span>name<span class="token punctuation">)</span><span class="token punctuation">)</span><span class="token punctuation">;</span>
|
||
<span class="token punctuation">}</span>
|
||
|
||
<span class="token comment">// 初始化Excel上传</span>
|
||
<span class="token keyword">function</span> <span class="token function">initExcelUpload</span><span class="token punctuation">(</span><span class="token punctuation">)</span> <span class="token punctuation">{</span>
|
||
<span class="token comment">// Excel上传</span>
|
||
<span class="token keyword">var</span> uploadLoading<span class="token punctuation">;</span>
|
||
layui<span class="token punctuation">.</span>upload<span class="token punctuation">.</span><span class="token function">render</span><span class="token punctuation">(</span><span class="token punctuation">{</span>
|
||
<span class="token literal-property property">elem</span><span class="token operator">:</span> <span class="token string">'#uploadExcel'</span><span class="token punctuation">,</span>
|
||
<span class="token literal-property property">url</span><span class="token operator">:</span> <span class="token string">'api/population/import-excel'</span><span class="token punctuation">,</span>
|
||
<span class="token literal-property property">accept</span><span class="token operator">:</span> <span class="token string">'file'</span><span class="token punctuation">,</span>
|
||
<span class="token literal-property property">exts</span><span class="token operator">:</span> <span class="token string">'xls|xlsx'</span><span class="token punctuation">,</span>
|
||
<span class="token literal-property property">field</span><span class="token operator">:</span> <span class="token string">'excel'</span><span class="token punctuation">,</span>
|
||
<span class="token function-variable function">before</span><span class="token operator">:</span> <span class="token keyword">function</span><span class="token punctuation">(</span><span class="token punctuation">)</span> <span class="token punctuation">{</span>
|
||
uploadLoading <span class="token operator">=</span> layer<span class="token punctuation">.</span><span class="token function">msg</span><span class="token punctuation">(</span><span class="token string">'正在上传,请稍后...'</span><span class="token punctuation">,</span> <span class="token punctuation">{</span><span class="token literal-property property">icon</span><span class="token operator">:</span> <span class="token number">16</span><span class="token punctuation">,</span> <span class="token literal-property property">time</span><span class="token operator">:</span> <span class="token number">0</span><span class="token punctuation">,</span> <span class="token literal-property property">shade</span><span class="token operator">:</span> <span class="token number">0.3</span><span class="token punctuation">}</span><span class="token punctuation">)</span><span class="token punctuation">;</span>
|
||
<span class="token punctuation">}</span><span class="token punctuation">,</span>
|
||
<span class="token function-variable function">done</span><span class="token operator">:</span> <span class="token keyword">function</span><span class="token punctuation">(</span><span class="token parameter">data</span><span class="token punctuation">)</span> <span class="token punctuation">{</span>
|
||
layer<span class="token punctuation">.</span><span class="token function">close</span><span class="token punctuation">(</span>uploadLoading<span class="token punctuation">)</span><span class="token punctuation">;</span>
|
||
<span class="token keyword">if</span><span class="token punctuation">(</span>data<span class="token punctuation">.</span>failedCount <span class="token operator">></span> <span class="token number">0</span><span class="token punctuation">)</span> <span class="token punctuation">{</span>
|
||
layer<span class="token punctuation">.</span><span class="token function">open</span><span class="token punctuation">(</span><span class="token punctuation">{</span>
|
||
<span class="token literal-property property">type</span><span class="token operator">:</span> <span class="token number">1</span><span class="token punctuation">,</span>
|
||
<span class="token literal-property property">title</span><span class="token operator">:</span> <span class="token boolean">false</span><span class="token punctuation">,</span>
|
||
<span class="token literal-property property">closeBtn</span><span class="token operator">:</span> <span class="token number">0</span><span class="token punctuation">,</span>
|
||
<span class="token literal-property property">shadeClose</span><span class="token operator">:</span> <span class="token boolean">true</span><span class="token punctuation">,</span>
|
||
<span class="token literal-property property">skin</span><span class="token operator">:</span> <span class="token string">''</span><span class="token punctuation">,</span>
|
||
<span class="token literal-property property">content</span><span class="token operator">:</span> <span class="token string">'<div style="padding: 15px;">'</span> <span class="token operator">+</span>
|
||
<span class="token string">'<div>失败数量:'</span><span class="token operator">+</span> data<span class="token punctuation">.</span>failedCount <span class="token operator">+</span><span class="token string">'</div><br/>'</span> <span class="token operator">+</span>
|
||
<span class="token string">'<div><a class="error-excel" href="javascript:void(0);" onclick="window.open(\'route/file/download/false/'</span><span class="token operator">+</span> data<span class="token punctuation">.</span>errorExcel <span class="token operator">+</span><span class="token string">'\');" target="downloadTarget">点击下载错误信息</a></div>'</span> <span class="token operator">+</span>
|
||
<span class="token string">'</div>'</span>
|
||
<span class="token punctuation">}</span><span class="token punctuation">)</span><span class="token punctuation">;</span>
|
||
<span class="token punctuation">}</span> <span class="token keyword">else</span> <span class="token punctuation">{</span>
|
||
layer<span class="token punctuation">.</span><span class="token function">msg</span><span class="token punctuation">(</span><span class="token string">'导入成功'</span><span class="token punctuation">,</span> <span class="token punctuation">{</span><span class="token literal-property property">time</span><span class="token operator">:</span> <span class="token number">2000</span><span class="token punctuation">}</span><span class="token punctuation">,</span> <span class="token keyword">function</span><span class="token punctuation">(</span><span class="token punctuation">)</span> <span class="token punctuation">{</span>
|
||
<span class="token function">closeBox</span><span class="token punctuation">(</span><span class="token punctuation">)</span><span class="token punctuation">;</span>
|
||
<span class="token punctuation">}</span><span class="token punctuation">)</span><span class="token punctuation">;</span>
|
||
<span class="token punctuation">}</span>
|
||
<span class="token punctuation">}</span><span class="token punctuation">,</span>
|
||
<span class="token function-variable function">error</span><span class="token operator">:</span> <span class="token keyword">function</span><span class="token punctuation">(</span><span class="token parameter">data<span class="token punctuation">,</span> index</span><span class="token punctuation">)</span><span class="token punctuation">{</span>
|
||
layer<span class="token punctuation">.</span><span class="token function">close</span><span class="token punctuation">(</span>uploadLoading<span class="token punctuation">)</span><span class="token punctuation">;</span>
|
||
<span class="token keyword">if</span><span class="token punctuation">(</span>data <span class="token operator">!=</span> <span class="token keyword">null</span><span class="token punctuation">)</span> <span class="token punctuation">{</span>
|
||
top<span class="token punctuation">.</span>dialog<span class="token punctuation">.</span><span class="token function">msg</span><span class="token punctuation">(</span>data<span class="token punctuation">.</span>msg<span class="token punctuation">)</span><span class="token punctuation">;</span>
|
||
<span class="token punctuation">}</span>
|
||
<span class="token punctuation">}</span><span class="token punctuation">,</span>
|
||
<span class="token punctuation">}</span><span class="token punctuation">)</span><span class="token punctuation">;</span>
|
||
<span class="token punctuation">}</span>
|
||
<span class="token function">initExcelUpload</span><span class="token punctuation">(</span><span class="token punctuation">)</span><span class="token punctuation">;</span>
|
||
|
||
<span class="token function">$</span><span class="token punctuation">(</span><span class="token string">'.close'</span><span class="token punctuation">)</span><span class="token punctuation">.</span><span class="token function">on</span><span class="token punctuation">(</span><span class="token string">'click'</span><span class="token punctuation">,</span> <span class="token keyword">function</span><span class="token punctuation">(</span><span class="token punctuation">)</span> <span class="token punctuation">{</span>
|
||
<span class="token function">closeBox</span><span class="token punctuation">(</span><span class="token punctuation">)</span><span class="token punctuation">;</span>
|
||
<span class="token punctuation">}</span><span class="token punctuation">)</span><span class="token punctuation">;</span>
|
||
<span class="token punctuation">}</span><span class="token punctuation">)</span><span class="token punctuation">;</span>
|
||
</span></span><span class="token tag"><span class="token tag"><span class="token punctuation"></</span>script</span><span class="token punctuation">></span></span>
|
||
<span class="token tag"><span class="token tag"><span class="token punctuation"></</span>body</span><span class="token punctuation">></span></span>
|
||
<span class="token tag"><span class="token tag"><span class="token punctuation"></</span>html</span><span class="token punctuation">></span></span>
|
||
</code></pre></div></div> <footer class="page-edit"><!----> <!----></footer> <div class="page-nav"><p class="inner"><span class="prev">
|
||
←
|
||
<a href="/code-template/area-select.html" class="prev">
|
||
地区选择
|
||
</a></span> <span class="next"><a href="/code-template/select.html">
|
||
下拉选择
|
||
</a>
|
||
→
|
||
</span></p></div> </main></div><div class="global-ui"></div></div>
|
||
<script src="/assets/js/app.8419454b.js" defer></script><script src="/assets/js/2.3324ea8d.js" defer></script><script src="/assets/js/9.07f1828d.js" defer></script>
|
||
</body>
|
||
</html>
|