注意:服务器需要安装office软件

1、Excel导入
   提示:未在本地计算机上注册“Microsoft.Jet.OLEDB.4.0”提供程序。
              未在本地计算机上注册“Microsoft.ACE.OLEDB.12.0”提供程序。
   解决方法如下:
   打开IIS管理器 -> 应用程序管理池 -> 选择相应程序的应用池 -> 
   右键 -> 应用程序池默认设置 -> 常规选项卡 -> 
   启用32位应用程序设置成 True

上传excel文件代码

public ActionResult EditAction(FormCollection collection)
{try{string filePath = string.Empty;string fileType = string.Empty;HttpPostedFileBase postedFile = Request.Files["fileImage"];#region 上传文件fileType = Path.GetExtension(postedFile.FileName).ToLower();//文件的后缀名(小写)FileUploadResult result = FileHelper.CreatePostedFileToImage(postedFile, @"upload\excel\");if (result != null && result.Code == (int)CodeEnum.Success){filePath = result.Path;}filePath = ConstantParamInfo.PhysicalApplicationPath + filePath;ImportSql(filePath, fileType);#endregion}catch (Exception ex){}return RedirectToAction("Index", "CityManage");
}

读取excel文件数据,插入数据库数据代码

        public bool ImportSql(string excelPath, string fileType){string strCon = string.Empty;if (fileType == ".xls")strCon = "Provider=Microsoft.Jet.OLEDB.4.0;Data Source=" + excelPath + ";Extended Properties='Excel 8.0;HDR=YES;IMEX=1'";elsestrCon = "Provider=Microsoft.ACE.OLEDB.12.0;Data Source=" + excelPath + ";Extended Properties='Excel 12.0;HDR=YES;IMEX=1'";System.Data.OleDb.OleDbConnection Conn = new System.Data.OleDb.OleDbConnection(strCon);string strCom = "SELECT * FROM [Sheet1$]";string strComNew = "SELECT * FROM [Sheet2$]";DataTable dt;DataTable dtNew;try{#region city tableSystem.Data.OleDb.OleDbDataAdapter myCommand = new System.Data.OleDb.OleDbDataAdapter(strCom, strCon);DataSet ds = new DataSet();myCommand.Fill(ds, "[Sheet1$]");dt = ds.Tables[0];if (dt != null){if (cityBiz.DeleteAll()){for (int i = 0; i < dt.Rows.Count; i++){var model = new City{ID = Convert.ToInt32(dt.Rows[i][0].ToString()),ProvincialID = 0,Title = dt.Rows[i][1].ToString(),State = "A"};cityBiz.Add(model);}}}#endregion#region Hospital tableSystem.Data.OleDb.OleDbDataAdapter myCommandNew = new System.Data.OleDb.OleDbDataAdapter(strComNew, strCon);DataSet dsNew = new DataSet();myCommandNew.Fill(dsNew, "[Sheet2$]");dtNew = dsNew.Tables[0];if (dtNew != null){if (hospitalBiz.DeleteAll()){for (int i = 0; i < dtNew.Rows.Count; i++){var model = new Hospital{CityId = Convert.ToInt32(dtNew.Rows[i][0].ToString()),Title = dtNew.Rows[i][1].ToString(),CreateBy = 0};hospitalBiz.Add(model);}}}#endregionreturn true;}catch (Exception ex){logger.Error("ImportSql()" + ex.Message);}return false;}

2、ASP.NET MVC Excel 下载 数据导出

        public ActionResult ExportCSV(){try{string Transactions = Request.Form["item"];List<long> arr = new List<long>();string[] strtemp = Transactions.Split(',');foreach (string strs in strtemp){arr.Add(long.Parse(strs));}//List<PaymentMaster> PaymentList = PaymentBusi.GetTransactionDetails(this.CurrentAccount.SiteID, arr.ToArray());List<PaymentMaster> PaymentList = new List<PaymentMaster>();MemoryStream stream = new MemoryStream();StreamWriter writer = new StreamWriter(stream);writer.WriteLine("AccountName,Date,TransactionID,ItemDesc,Amount,TransactionTotal");writer.Flush();for (int i = 0; i < PaymentList.Count; i++){string Summary = string.Empty;string PaymentIDF = string.Empty;string PaymentID = string.Empty;if (PaymentList[i].PaymentItems.Count > 0)Summary = DelQuota(PaymentList[i].PaymentItems[0].Summary);if (PaymentList[i].PaymentID > 0)PaymentIDF = PaymentList[i].PaymentID.ToString();writer.WriteLine(string.Format("{0},{1},{2},{3},{4},{5}",DelQuota(PaymentList[i].AccountName),Convert.ToDateTime(PaymentList[i].CreateDate, GetMDDYYFormat()).ToShortDateString(),PaymentList[i].PaymentID,Summary,"$" + PaymentList[i].PaymentItems[0].Amount.ToString(),""));if (PaymentList[i].PaymentItems.Count > 0){for (int j = 0; j < PaymentList[i].PaymentItems.Count; j++){if (PaymentList[i].PaymentItems[j].PaymentID > 0)PaymentID = PaymentList[i].PaymentItems[j].PaymentID.ToString();if (j != 0){writer.WriteLine(string.Format("{0},{1},{2},{3},{4},{5}","","",PaymentID,DelQuota(PaymentList[i].PaymentItems[j].Summary),"$" + PaymentList[i].PaymentItems[j].Amount.ToString(),""));}}writer.WriteLine(string.Format("{0},{1},{2},{3},{4},{5}","","","","","","$" + PaymentList[i].Amount.ToString()));}writer.Flush();}stream.Position = 0;byte[] buffer = new byte[stream.Length];stream.Read(buffer, 0, buffer.Length);stream.Close();return File(buffer, "text/plain", "PaymentInvoice.csv");}catch (Exception){return View();}}public string DelQuota(string str){string result = str;string[] strQuota = { "~", "!", "@", "#", "$", "%", "^", "&", "*", "(", ")", "`", ";", "'", ",", ".", "/", ":", "/,", "<", ">", "?" };for (int i = 0; i < strQuota.Length; i++){if (result.IndexOf(strQuota[i]) > -1)result = result.Replace(strQuota[i], "");}return result;}public System.Globalization.DateTimeFormatInfo GetMDDYYFormat(){System.Globalization.DateTimeFormatInfo dtFormat = new System.Globalization.DateTimeFormatInfo();dtFormat.ShortDatePattern = "M/dd/yy";return dtFormat;}public class PaymentMaster{public string PaymentMethod { get; set; }public long PaymentID { get; set; }public long AccountID { get; set; }public long ContactID { get; set; }public int Status { get; set; }public long SiteID { get; set; }public long ClientID { get; set; }public string LoginName { get; set; }public string FirstName { get; set; }public string LastName { get; set; }public string Amount { get; set; }public int DetailCount { get; set; }public string Description { get; set; }public System.DateTime ModifyDate { get; set; }public string CreateDate { get; set; }public List<long> RentalIDs { get; set; }public List<PaymentDetail> PaymentItems { get; set; }public List<string> UnitNumbers { get; set; }public string AccountName { get; set; }}public class PaymentDetail{public long DetailID { get; set; }public int DetailType { get; set; }public long PaymentID { get; set; }public long AccountID { get; set; }public long ContactID { get; set; }public long RentalID { get; set; }public int Status { get; set; }public long SiteID { get; set; }public string Summary { get; set; }public string UnitNumber { get; set; }public string UnitSize { get; set; }public int UnitCount { get; set; }public string PaidThruDate { get; set; }//Public Property Dimensions As Stringpublic string Amount { get; set; }public string TransactionNumber { get; set; }public string Description { get; set; }public System.DateTime ModifyDate { get; set; }public System.DateTime CreateDate { get; set; }}

3、ASP.NET Web API Excel 下载 数据导出

[Route("api/area/export")]
[HttpGet]
public HttpResponseMessage Export()
{List<sys_area> list = new List<sys_area>();list.Add(new sys_area { code_id = "110000", name = "北京市" });list.Add(new sys_area { code_id = "130000", name = "河北省" });#region excelvar runNum = 0;var workbook = new XSSFWorkbook();var worksheet = workbook.CreateSheet("Sheet1");var workRowHead = worksheet.CreateRow(runNum);workRowHead.CreateCell(0).SetCellValue("编号");workRowHead.CreateCell(1).SetCellValue("省");runNum++;foreach (var item in list){var workRow = worksheet.CreateRow(runNum);workRow.CreateCell(0).SetCellValue(item.code_id);workRow.CreateCell(1).SetCellValue(item.name);runNum++;}using (MemoryStream memoryStream = new MemoryStream()){workbook.Write(memoryStream);var result = new HttpResponseMessage(HttpStatusCode.OK){Content = new ByteArrayContent(memoryStream.ToArray())};result.Content.Headers.ContentType = new MediaTypeHeaderValue("application/octet-stream");result.Content.Headers.ContentDisposition = new System.Net.Http.Headers.ContentDispositionHeaderValue("attachment"){FileName = $"地区{DateTime.Now.ToString("yyyyMMddhhmmss")}.xlsx"};return result;}#endregion
}

Html 前端调用

$("#btnExport").click(function () {window.location.href = "http://" + window.location.host +"/Area/Export?code=&name=";
});

*
*
*

ASP.NET MVC Excel 导入导出 ASP.NET Web API Excel 下载 C# Excel 导入导出相关推荐

  1. 返璞归真 asp.net mvc (10) - asp.net mvc 4.0 新特性之 Web API

    返璞归真 asp.net mvc (10) - asp.net mvc 4.0 新特性之 Web API 原文:返璞归真 asp.net mvc (10) - asp.net mvc 4.0 新特性之 ...

  2. 七天学会ASP.NET MVC (一)——深入理解ASP.NET MVC

    七天学会ASP.NET MVC (一)--深入理解ASP.NET MVC 系列文章 七天学会ASP.NET MVC (一)--深入理解ASP.NET MVC 七天学会ASP.NET MVC (二)-- ...

  3. ASP.NET MVC应用迁移到ASP.NET Core及其异同简介

    ASP.NET Core是微软新推出支持跨平台.高性能.开源的开发框架,相比起原有的ASP.NET来说,ASP.NET Core更适合开发现代应用程序,如跨平台.Dorker的支持.集成现代前端开发框 ...

  4. Spring.Net+NHibenate+Asp.Net mvc +ExtJs 系列 6 ----asp.net MVC+Extjs

    现在mvc采用了ModelBinder, Controller中现在可以接受很多复杂类型的参数,但是对于jquery,extjs等js框架来说,更多的是采用json格式与服务器端传递参数更合理.对于简 ...

  5. ASP.NET MVC教程五:ASP.NET MVC中的路由

    一.概述 在ASP.NET MVC架构中,控制器在3大核心构件中处于中心地位,通过控制器支配模型和视图,然而从浏览器发出的请求到控制器还需要路由的协助,路由将特定的请求和控制器的动作对应起来. 在AS ...

  6. 在Asp.net应用程序中构建基于WCF Web.Api的服务

    WCF Web API Preview 5 发布了,你可以官方网站下载或通过Nuget安装它. 下面让我们在Asp.net applicatoin中来实现一个非常简单的web api service. ...

  7. 基于ASP.NET MVC 利用(Aspose+Pdfobject.js) 实现在线预览Word、Excel、PPT、PDF文件

    详细链接:https://shop499704308.taobao.com/?spm=a1z38n.10677092.card.11.594c1debsAGeak VS2010版本以及以上版本源码下载 ...

  8. ASP.NET MVC教程四:ASP.NET MVC中页面传值的几种方式

    准备 在Models文件夹里面新添加Student实体类,用来模拟从Controller向View传递数据,Student类定义如下: using System; using System.Colle ...

  9. 使用Swagger,ApiExplorer和NSwag掌握ASP.NET Core和ABP中的外部Web API

    目录 更多Cowbell Swagger 探索ApiExplorer 消费Swagger ...没那么快 最后的技巧和窍门 结论 该博客条目通过向我现有的Web应用程序中添加第二个swagger文件, ...

  10. excel通过转成xml格式模板,下载成excel文件

    源代码: report ztest_down_excel.data: begin of i_file occurs 0,val(255) type c,end of i_file.data begin ...

最新文章

  1. USB学习5---android usb驱动源代码目录说明
  2. springMVC面试问题整理一
  3. spring 监听器 IntrospectorCleanupListener简介
  4. wingIDE设置python虚拟环境并运行
  5. flower.php,flower.php
  6. graphpad7.04多组比较p值_同是折线图为何你却这么优秀,这才是多组数据作图应该有的样子...
  7. 结对和团队项目建议 - 黄金点游戏
  8. 不用python爬今日头条_手把手教你从今日头条爬取你想要的任何图片
  9. HDU 3530Subsequence(单调队列)
  10. python ssh模块stdout.read 和recv_paramiko SSH 模块简单应用。
  11. 机器学习正面临着可重现性危机!
  12. 【解决】该任务映像已损坏或已篡改。(异常来自HRESULT:0x80041321)
  13. xp怎么删除计算机用户,WinXp系统如何删除用户账户?Xp系统删除用户账号的方法...
  14. 图像上采样和图像下采样
  15. PLC控制系统设计的基本原则和步骤
  16. 硬盘是计算机的储存器,硬盘存储器
  17. 如何在Python中将Word转换为图片?
  18. ubuntu下vscode配置终端生成任务以及管理员模式运行
  19. 使用vscode开发apicloud
  20. Python实现支持向量机(基于双月数据集)

热门文章

  1. c++编写手机小游戏代码_用C++编写的小游戏源代码
  2. 排序算法(1)冒泡排序
  3. OCR技术简介——人工智能爆发前的技术
  4. 关于地产信息化“大佬”们说了什么?看完这些就够了
  5. JAVA系列02:30天Java核心技术P32~P40
  6. 求浆得酒,能获得如此好运,也当为大家做些什么
  7. 【Excel函数】Office 365 之Excel函数之Left函数
  8. 网络安全——逻辑漏洞概述
  9. 再见,区块链 Rio会议和以太坊Sao Paolo活动。 你好,闪光时刻
  10. java 日历记事本_用Java实现日历记事本.doc