最近使用asp.net+sqlserver+layui前端框架完成了一个小页面,其中有一个功能是需要将行业代码表导入倒数据库。看到这个行业代码表,刚开始还真是无从下手,经过查询找到一个页面是关于行业代码处理的(word导入mysql表格_从word得到表格数据插入数据库(6位行业代码)),但是感觉这样处理不是太好,不应该让用户去填充excel表格(增加用户的工作量)。
我的解决方案如下:
一、数据库设计
二、文件上传功能(3层架构)
1、web层
<html xmlns="http://www.w3.org/1999/xhtml">
<head runat="server">
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<title>行业代码对应页面</title>
<link rel="stylesheet" href="../layui/css/layui.css" />
<script src="https://cdn.bootcdn.net/ajax/libs/jquery/2.2.0/jquery.js"></script>
<script type="text/javascript" src="../layui/layui.js"></script>
</head>
<body>
<div style="margin: 10px 10px 10px 10px">
<div class="layui-btn-container">
<button class="layui-btn layui-btn-normal layui-btn-sm data-add-btn" style="background: #108ee9; padding: 0 20px;" type="button" id="upload">导入行业代码 </button>
</div>
</div>
<script type="text/javascript">
//1.文件上传
layui.use('upload', function () {
var $ = layui.jquery
, upload = layui.upload;//指定允许上传的文件类型
var loadingIndex;; //添加loading,0-2三种方式
upload.render({
elem: '#upload'
, url: '../handler/UploadCode.ashx' //改成您自己的上传接口,我采用的是一般处理程序
, accept: 'file' //普通文件
, before: function () {
loadingIndex = layer.load(1);
}
, done: function (res) {
console.log(res);
layer.close(loadingIndex); //返回数据关闭loading
//如果上传失败
if (res.code > 0) {
if (res.code == 1) {
return layer.alert('上传文件为空,请选择需要上传的excel文件.', {
skin: 'layui-layer-molv' //样式类名 自定义样式
, anim: 2 //动画类型
, icon: 1 // icon
});
} else if (res.code == 2) {
return layer.alert('仅 .xlsx 或 .xls文件类型可以被导入.', {
skin: 'layui-layer-molv' //样式类名 自定义样式
, anim: 2 //动画类型
, icon: 1 // icon
});
} else if (res.code == 3) {
return layer.alert('数据源缺少必要的字段,请检查Excel数据源!', {
skin: 'layui-layer-molv' //样式类名 自定义样式
, anim: 2 //动画类型
, icon: 1 // icon
});
} else if (res.code == 4) {
return layer.alert('Excel文件中没有任何数据,请填充数据!', {
skin: 'layui-layer-molv' //样式类名 自定义样式
, anim: 2 //动画类型
, icon: 1 // icon
});
} else {
return layer.alert('导入失败,请检查网络是