mvc 导入excel表格
<script>
$(function () {
$("#Attachment").change(function () {
var att = $("#Attachment").val();
$("#hid-Attachment").val(att);
});
})
</script>
@using (Html.BeginForm("ImportExcel", "ProductOrder", FormMethod.Post, new { id = "ff", enctype = "multipart/form-data" }))
{
<div class="easyui-panel" title="受理工单" style="width: auto;">
<div style="padding: 10px 0 10px 400px">
<table style="text-align: center;">
<tr>
<td>上传附件:</td>
<td colspan="">
<input type="file" name="Attachment" id="Attachment" />
<input type="hidden" name="hid-Attachment" id="hid-Attachment" />
</td>
</tr>
</table>
</div>
<div style="text-align: center; padding: 5px 220px 10px 250px">
<a href="javascript:void(0)" class="easyui-linkbutton" onclick="window.history.go(-1)">返回</a>
<a href="javascript:void(0)" class="easyui-linkbutton" onclick="submitForm()" id="submit">按指定方式处理</a>
<input type="submit" value="提交" />
</div>
</div>
public ActionResult ImportExcel(HttpPostedFileBase Attachment)
{
if (!string.IsNullOrEmpty(Request["hid-Attachment"]))
{
string path = this.Server.MapPath(@"../Uploads");
string fileName = Path.GetFileName(Attachment.FileName); uploadInfo.ContentLength = Attachment.ContentLength;
uploadInfo.FileName = fileName;
uploadInfo.UploadedLength = ; uploadInfo.IsReady = true; int bufferSize = ;
byte[] buffer = new byte[bufferSize]; using (FileStream fs = new FileStream(Path.Combine(path, fileName), FileMode.Create))
{
while (uploadInfo.UploadedLength < uploadInfo.ContentLength)
{
int bytes = Attachment.InputStream.Read(buffer, , bufferSize);
fs.Write(buffer, , bytes);
uploadInfo.UploadedLength += bytes;
}
}
string file = Path.Combine(path, fileName);
string result = string.Empty;
string strConn;
strConn = "Provider=Microsoft.Jet.OLEDB.4.0;" + "Data Source=" + file + "; " + "Extended Properties=Excel 8.0;";
OleDbDataAdapter myCommand = new OleDbDataAdapter("SELECT * FROM [Sheet1$]", strConn);
DataSet myDataSet = new DataSet();
myCommand.Fill(myDataSet, "ProductOrder");
System.Data.DataTable tab = myDataSet.Tables["ProductOrder"].DefaultView.ToTable();
// ...用foreach把tab中数据添加到数据库 省略了如果是多表插入,可以调用存储过程.呵呵
foreach (DataRow dr in tab.Rows)
{
if (!string.IsNullOrEmpty(dr["商品号"].ToString()))
{
ProductOrder model = new ProductOrder()
{
CreateTime = dr["日期"].ToString(),
CustomerServices = dr["接待客服"].ToString(),
Customer = dr["顾客姓名"].ToString(),
Address = dr["联系地址"].ToString(),
TEL = dr["联系电话"].ToString(),
ProductName = dr["所购商品"].ToString(),
Quantity = dr["数量"].ToString(),
Price = dr["单价"].ToString(),
Unit = dr["单位"].ToString(),
TotalPrice = dr["总价"].ToString(),
PayoutStatus = dr["支付情况"].ToString(),
OrderId = dr["商品号"].ToString(),
Sim = dr["sim卡号"].ToString(),
SimStatus = dr["sim卡开通情况"].ToString(),
LogisticsId = dr["物流单号"].ToString(),
ReceivingStatus = dr["收货情况"].ToString(),
CollectionStatus = dr["收款情况"].ToString(),
};
db.ProductOrders.Add(model);
db.SaveChanges();
}
else
{
break;
} }
#region MyRegion
//using (System.Data.SqlClient.SqlBulkCopy bcp = new System.Data.SqlClient.SqlBulkCopy("Data Source=.;Initial Catalog=WorkOrder;Integrated Security=True;MultipleActiveResultSets=True"))
//{
// bcp.ColumnMappings.Add("日期", "CreateTime");
// bcp.ColumnMappings.Add("接待客服", "CustomerServices");
// bcp.ColumnMappings.Add("顾客姓名", "Customer");
// bcp.ColumnMappings.Add("联系地址", "Address");
// bcp.ColumnMappings.Add("数量", "Quantity");
// bcp.ColumnMappings.Add("所购商品", "ProductName");
// bcp.ColumnMappings.Add("联系电话", "TEL");
// bcp.ColumnMappings.Add("支付情况", "PayoutStatus");
// bcp.ColumnMappings.Add("商品号", "OrderId");
// bcp.ColumnMappings.Add("sim卡号", "Sim");
// bcp.ColumnMappings.Add("sim卡开通情况", "SimStatus");
// bcp.ColumnMappings.Add("物流单号", "LogisticsId");
// bcp.ColumnMappings.Add("收货情况", "ReceivingStatus");
// bcp.ColumnMappings.Add("收款情况", "CollectionStatus");
// bcp.BatchSize = 100;//每次传输的行数
// bcp.NotifyAfter = 100;//进度提示的行数
// bcp.DestinationTableName = "ProductOrder";//目标表
// bcp.WriteToServer(tab);
//}
#endregion
#region MyRegion
//using (SqlConnection connection = new SqlConnection("Data Source=.;Initial Catalog=WorkOrder;Integrated Security=True;MultipleActiveResultSets=True"))
//{
// try
// {
// connection.Open();
// //给表名加上前后导符
// using (var bulk = new SqlBulkCopy(connection, SqlBulkCopyOptions.KeepIdentity, null)
// {
// DestinationTableName = "ProductOrder",
// BatchSize = 10000
// })
// {
// //循环所有列,为bulk添加映射
// //dataTable.EachColumn(c => bulk.ColumnMappings.Add(c.ColumnName, c.ColumnName), c => !c.AutoIncrement);
// foreach (DataColumn dc in tab.Columns)
// {
// bulk.ColumnMappings.Add(dc.ColumnName, dc.ColumnName);
// }
// bulk.WriteToServer(tab);
// bulk.Close();
// }
// return View();
// }
// catch (Exception exp)
// {
// return View();
// }
//}
#endregion return RedirectToAction("List");
result = "导入成功!";
JsonResult json = new JsonResult();
json.Data = result;
return json;
} return View();
}
mvc 导入excel表格的更多相关文章
- ASP.NET MVC导入excel到数据库
MVC导入excel和webform其实没多大区别,以下为代码: 视图StationImport.cshtml的代码: @{ ViewBag.Title = "StationImport&q ...
- php导入excel表格
我们做网站的时候经常要用到excel导入和导出的功能,我们通常的做法是用phpexcel工具包来完成,具体方法如下: html代码: <form action="{:U('Mall/u ...
- phpexcel导入excel表格
html代码 <form action="{:U('Mall/updExcel')}" method="POST" enctype="multi ...
- 怎样把Word文档导入Excel表格
Word是现在办公中的基础文件格式了,很多的内容我们都通过Word来进行编辑,那么当我们需要将Word文档里的信息导入到Excel里面的时候,我们应该怎样做呢?下面我们就一起来看一下吧. 操作步骤: ...
- 第三次作业--导入excel表格(完整版)
031302322 031302316 将教师排课表导入系统 使用powerdesigner设计数据库表格 设计概念模型 打开new -> Conceptual Data Model创建概念模型 ...
- 【tp5.1】通过PHPExcel实现导入excel表格
1.上github下载PHPExcel,链接:https://github.com/PHPOffice/PHPExcel 2.下载解压后,将Classes改名为PHPExcel如图 3.将文件夹复制到 ...
- 导入Excel表格(二)
1. 提取session中的数据.并进行分页操作,上传excel表格,保存到临时表格. 初始化临时表格,提交表单,判断状态是否为真,若为真,则启用 导入到数据库 的按钮:为false,让查询的url ...
- 前端JS实现一键导入excel表格
前面的文章中已经讲过关于js表格的导出,此文章主要说到的是excel文件如何导入到网页中,并在网页端显示. 代码部分: <!DOCTYPE html> <html> <h ...
- MySQL中导入Excel表格中的数据
在数据库中建立好响应的数据库.表(参考excel表格中列中的名字和内容): 将excel表格另存为txt文件,选择“文本文件(制表符分割)”: 打开相应的txt文件,只留下要导入的数据(windows ...
随机推荐
- php中的gethostbyname函数有问题
在根据域名获取ip的批量执行中,gethostbyname有些域名得到的ip是不正确的,不知道是不是版本的bug. 解决办法是,使用执行命令的方式获取 echo exec("host dom ...
- oracle 导库建立测试库
由于客户要定制的关系,需要对产品的数据进行相关的修改,所以需要复制原来的库出来,然后在此基础上再进行修改.步骤如下: 在PL/SQL下操作: /*分为四步 *//*第1步:创建临时表空间 */cre ...
- volley_缓存介绍
离线缓存就是在网络畅通的情况下将从服务器收到的数据保存到本地,当网络断开之后直接读取本地文件中的数据.如Json 数据缓存到本地,在断网的状态下启动APP时读取本地缓存数据显示在界面上,常用的APP( ...
- 从感知器到SVM
这篇文章主要是分析感知器和SVM处理分类问题的原理,不涉及求解 感知器: 感知器要解决的是这样的一个二分类问题:给定了一个线性可分的数据集,我们需要找到一个超平面,将该数据集分开.这个超平面的描述如下 ...
- Google Font字体本地化使用提高网站访问速度
Google Web font在国内经常不稳定,速度在国内延迟也很高,而引发网页打开速度慢. 一.常见的字体格式介绍 不同的浏览器对字体格式支持是不一致的,常见的如下: 1.TureTpe(.ttf) ...
- Linux学习笔记(二)
1.tzselect无法是使用 vim /usr/bin/tzselect 将 ${TZDIR=pwd}改为${TZDIR=/usr/share/zoneinfo} 2.sudo apt-get in ...
- Jquery实现兼容各大浏览器的Enter回车切换输入焦点的方法
<script type="text/javascript"> $('input:text:first').focus(); document.onkeydown = ...
- 单片机联网需求攀升 WIZnet全硬件TCP/IP技术崛起
--新华龙电子为韩国WIZnet公司网络芯片授权代理商,具有20多年的专业团队IC应用开发实力-- 如今不管是在企业还是小区.街道,甚至是居民室内,以太网接口无处不在.有鉴于此,电子设备必将向更加智能 ...
- Linux中fork的秘密
linux中fork()函数详解 一.fork入门知识 一个进程,包括代码.数据和分配给进程的资源.fork()函数通过系统调用创建一个与原来进程几乎完全相同的进程,也就是两个进程可以 ...
- IIS7下ajax报未定义错误
项目之前在iis6环境下运行的很好,今天在WIN7下发布,结果居然报对象未定义错误,经过个把小时折腾,终于弄清楚原委. 在web.config中关于AjaxPro的设置,在IIS7.0(WIN7中使用 ...