<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表格的更多相关文章

  1. ASP.NET MVC导入excel到数据库

    MVC导入excel和webform其实没多大区别,以下为代码: 视图StationImport.cshtml的代码: @{ ViewBag.Title = "StationImport&q ...

  2. php导入excel表格

    我们做网站的时候经常要用到excel导入和导出的功能,我们通常的做法是用phpexcel工具包来完成,具体方法如下: html代码: <form action="{:U('Mall/u ...

  3. phpexcel导入excel表格

    html代码 <form action="{:U('Mall/updExcel')}" method="POST" enctype="multi ...

  4. 怎样把Word文档导入Excel表格

    Word是现在办公中的基础文件格式了,很多的内容我们都通过Word来进行编辑,那么当我们需要将Word文档里的信息导入到Excel里面的时候,我们应该怎样做呢?下面我们就一起来看一下吧. 操作步骤: ...

  5. 第三次作业--导入excel表格(完整版)

    031302322 031302316 将教师排课表导入系统 使用powerdesigner设计数据库表格 设计概念模型 打开new -> Conceptual Data Model创建概念模型 ...

  6. 【tp5.1】通过PHPExcel实现导入excel表格

    1.上github下载PHPExcel,链接:https://github.com/PHPOffice/PHPExcel 2.下载解压后,将Classes改名为PHPExcel如图 3.将文件夹复制到 ...

  7. 导入Excel表格(二)

    1. 提取session中的数据.并进行分页操作,上传excel表格,保存到临时表格. 初始化临时表格,提交表单,判断状态是否为真,若为真,则启用 导入到数据库 的按钮:为false,让查询的url ...

  8. 前端JS实现一键导入excel表格

    前面的文章中已经讲过关于js表格的导出,此文章主要说到的是excel文件如何导入到网页中,并在网页端显示. 代码部分: <!DOCTYPE html> <html> <h ...

  9. MySQL中导入Excel表格中的数据

    在数据库中建立好响应的数据库.表(参考excel表格中列中的名字和内容): 将excel表格另存为txt文件,选择“文本文件(制表符分割)”: 打开相应的txt文件,只留下要导入的数据(windows ...

随机推荐

  1. BigInger isProbablePrime

    JAVA BigInteger 成员函数: isProbablePrime public boolean isProbablePrime(int certainty) 如果此 BigInteger 可 ...

  2. sklearn学习笔记3

    Explaining Titanic hypothesis with decision trees decision trees are very simple yet powerful superv ...

  3. SQL Server 维护计划实现数据库备份(Step by Step)(转)

    SQL Server 维护计划实现数据库备份(Step by Step) 一.前言 SQL Server 备份和还原全攻略,里面包括了通过SSMS操作还原各种备份文件的图形指导,SQL Server  ...

  4. [转载]Java程序员使用的20几个大数据工具

    最近我问了很多Java开发人员关于最近12个月内他们使用的是什么大数据工具. 这是一个系列,主题为: 语言web框架应用服务器SQL数据访问工具SQL数据库大数据构建工具云提供商今天我们就要说说大数据 ...

  5. LCA

    2016.1.28 LCA,就是最近公共祖先,这里介绍倍增的算法. 首先我们要预处理,设f[i][j]为编号为i的节点的2j级祖先,所谓2j级祖先,就是从i节点开始往树的上层数2j个节点.如下图所示 ...

  6. Jquery实现兼容各大浏览器的Enter回车切换输入焦点的方法

    <script type="text/javascript"> $('input:text:first').focus(); document.onkeydown = ...

  7. 1.3 Makefile 工程管理

    1. 为什么得用Makefile 单步命令生成led.bin [root@cfm880 lesson1]# cd .. [root@cfm880 Part1]# mkdir lesson3 [root ...

  8. Android基础开发文档汇总

    一.Android 基本组件 1. Android中PackageManager使用示例 :  http://blog.csdn.net/qinjuning/article/details/68678 ...

  9. Android test---SL4A

    这里有一个链接http://www.linuxidc.com/Linux/2014-02/96452.htm 详细教程

  10. Linux CentOS 7通过yum命令安装Mono4.0.1

    前言 上一篇中提到的快照方式安装Mono,该方式并不稳定,需要做各种配置,各种修改才能与jexus搭配运行. 一.安装源 rpm --import "http://keyserver.ubu ...