Asp.net core 学习笔记 (Excel 读写)
EPPlus 已经支持 .net core 了
https://www.nuget.org/packages/EPPlus
https://github.com/JanKallman/EPPlus
refer: https://stackoverflow.com/questions/40209636/epplus-number-format/40214134 常用 format
note: excel datetimeoffset 不支持的
写入 excel
- public async Task<IActionResult> About()
- {
- ViewData["Message"] = "Your application description page.";
- var products = new List<Product>
- {
- new Product
- {
- name = "mk100",
- date = DateTime.Now,
- amount = 99.33,
- published = false,
- sort =
- },
- new Product
- {
- name = "mk200",
- date = DateTime.Now,
- amount = 99.33,
- published = true,
- sort =
- }
- };
- byte[] responseBytes;
- string path = Path.Combine(HostingEnvironment.WebRootPath, "excel", "abc.xlsx");
- using (var package = new ExcelPackage())
- {
- // Add a new worksheet to the empty workbook
- ExcelWorksheet worksheet = package.Workbook.Worksheets.Add("Inventory");
- // 2 种方式做 select
- // - 从新创建想要的对象 (比较灵活)
- // - 通过 memberInfoes 选出要的
- //var memberInfoes = "name,date,amount,published,sort".Split(',').Select(v => typeof(Product).GetProperty(v)).ToArray();
- var datas = products.Select(p => new
- {
- p.name,
- p.date
- });
- worksheet.Cells["A1"].LoadFromCollection(
- datas,
- true,
- TableStyles.None
- //BindingFlags.Public,
- //memberInfoes
- );
- // 弄 date/datetime format
- using (var cellRanges = worksheet.Cells[$"B2:B{datas.Count() + 1}"])
- {
- cellRanges.Style.Numberformat.Format = "yyyy-mm-dd";
- }
- //Add the headers
- //worksheet.Cells[1, 1].Value = "String";
- //worksheet.Cells[1, 2].Value = "Int";
- //worksheet.Cells[1, 3].Value = "Double";
- //worksheet.Cells[1, 4].Value = "Boolean";
- //worksheet.Cells[1, 5].Value = "Date";
- //worksheet.Cells[2, 1].Value = "dasd";
- //worksheet.Cells[2, 2].Value = 12312;
- //worksheet.Cells[2, 3].Value = 123.123123;
- //worksheet.Cells[2, 4].Value = true;
- //worksheet.Cells[2, 5].Value = DateTime.Now;
- //worksheet.Cells[2, 5].Style.Numberformat.Format = "yyyy-mm-dd";
- //worksheet.Cells["C2:C5"].Style.Numberformat.Format = "#,##0";
- //worksheet.Cells["D2:E5"].Style.Numberformat.Format = "#,##0.00";
- worksheet.Cells.AutoFitColumns(); //Autofit columns for all cells
- System.IO.File.Delete(path);
- // note package.SaveAs 和 package.GetAsByteArray() 不能一起用
- // 用了一个另一个就不能用了,通常我们是选其中一个用而已啦,很少 2 个都需要的
- // 解决方法很简单,用 byte 然后 file stream 写 bytes 进去
- responseBytes = package.GetAsByteArray();
- using (var fs = System.IO.File.Create(path))
- {
- await fs.WriteAsync(responseBytes);
- //package.SaveAs(fs);
- }
- }
- //return File(responseBytes, "application/vnd.openxmlformats-officedocument.spreadsheetml.sheet", "report.xlsx");
- return File(await System.IO.File.ReadAllBytesAsync(path), "application/vnd.openxmlformats-officedocument.spreadsheetml.sheet", "report.xlsx");
- }
读 excel
- public IActionResult Contact()
- {
- var path = Path.Combine(HostingEnvironment.WebRootPath, "excel", "abc.xlsx");
- using (var fs = System.IO.File.Open(path, FileMode.Open, FileAccess.Read))
- using (var package = new ExcelPackage(fs))
- {
- var worksheet = package.Workbook.Worksheets["Inventory"];
- var sc = worksheet.Dimension.Start.Column;
- var ec = worksheet.Dimension.End.Column;
- var sr = worksheet.Dimension.Start.Row;
- var er = worksheet.Dimension.End.Row;
- var value = worksheet.Cells[sc, sr + ].Value;
- }
- ViewData["Message"] = "Your contact page.";
- return View();
- }
Asp.net core 学习笔记 (Excel 读写)的更多相关文章
- Asp.Net Core学习笔记:入门篇
Asp.Net Core 学习 基于.Net Core 2.2版本的学习笔记. 常识 像Django那样自动检查代码更新,自动重载服务器(太方便了) dotnet watch run 托管设置 设置项 ...
- ASP.NET Core 学习笔记 第一篇 ASP.NET Core初探
前言 因为工作原因博客断断续续更新,其实在很早以前就有想法做一套关于ASP.NET CORE整体学习度路线,整体来说国内的环境的.NET生态环境还是相对比较严峻的,但是干一行爱一行,还是希望更多人加入 ...
- ASP.NET Core 学习笔记 第五篇 ASP.NET Core 中的选项
前言 还记得上一篇文章中所说的配置吗?本篇文章算是上一篇的延续吧.在 .NET Core 中读取配置文件大多数会为配置选项绑定一个POCO(Plain Old CLR Object)对象,并通过依赖注 ...
- Asp.net Core学习笔记
之前记在github上的,现在搬运过来 变化还是很大的,感觉和Nodejs有点类似,比如中间件的使用 ,努力学习ing... 优点 不依赖IIS 开源和跨平台 中间件支持 性能优化 无所不在的依赖注入 ...
- ASP.NET Core 学习笔记 第三篇 依赖注入框架的使用
前言 首先感谢小可爱门的支持,写了这个系列的第二篇后,得到了好多人的鼓励,也更加坚定我把这个系列写完的决心,也能更好的督促自己的学习,分享自己的学习成果.还记得上篇文章中最后提及到,假如服务越来越多怎 ...
- ASP.NET Core 学习笔记 第四篇 ASP.NET Core 中的配置
前言 说道配置文件,基本大多数软件为了扩展性.灵活性都会涉及到配置文件,比如之前常见的app.config和web.config.然后再说.NET Core,很多都发生了变化.总体的来说技术在进步,新 ...
- Asp.net core 学习笔记 ( Data protection )
参考 : http://www.cnblogs.com/xishuai/p/aspnet-5-identity-part-one.html http://cnblogs.com/xishuai/p/a ...
- Asp.net core 学习笔记 SignalR
refer : https://kimsereyblog.blogspot.com/2018/07/signalr-with-asp-net-core.html https://github.com/ ...
- Asp.net core (学习笔记 路由和语言 route & language)
https://docs.microsoft.com/en-us/aspnet/core/mvc/controllers/routing?view=aspnetcore-2.1 https://doc ...
随机推荐
- 苹果笔记本充不进电怎么办_macbook充不进电解决办法
使用苹果Macbook的用户可能会遇到这种情况,使用一段时间后自己的苹果笔记本充不进电了,虽然充电器指示灯依然亮着,但是电池电脑一直充不进去,断开充电器后就直接关机的情况.通常碰到这种情况,很多用户都 ...
- Java类型信息
一.引言 最近在阅读<Java编程思想>,学习一下java类型信息,现在做一下总结.Java如何让我们在运行时识别对象和类的信息的.主要有两种方式:一种是传统的“RTTI”,它假定我们在编 ...
- replace 将逗号替换~
var reg = new RegExp(",","g"); //"g"表示全局替换var aa="qq,ww";aa= ...
- SCOI 2018 划水记
(此处不应有目录,省选爆零的过程得慢慢看) Day -n 一诊 说真的,在没看到“第一次诊断性考试”之前,一直以为是“一整”,真是可怕,初中教育都开始像UW中的最高祭司学习了. 感觉题目很gg.于是考 ...
- batchGetAnchorLevel(dubbo接口)
一.编写脚本前的准备工作 1.安装idea,安装本地maven库,并在idea里面配置maven 2.导入git源码(目的在于下载所依赖的基础包)-->File-new-Project from ...
- CentOS Yum 源搭建
创建yum源服务,主要用到了两个软件createrepo和httpd.前者是创建yum源索引的工具,后者是提供文件在线流浪的功能,当然,除了httpd之外,你也可以使用nginx替代. creater ...
- Pytest 简明教程
pytest-learn 通过文章 Python 单元测试框架之 Pytest 剖解入门(第一篇) 学习 Pytest. 有很多的第三方插件可以自定义扩展,并且支持 Allure,生成可视化的测试报告 ...
- Java 使用命令对堆线程分析
一.dump基本概念 在故障定位(尤其是out of memory)和性能分析的时候,经常会用到一些文件来帮助我们排除代码问题.这些文件记录了JVM运行期间的内存占用.线程执行等情况,这就是我们常说的 ...
- powershell脚本的格式化
Auto Formatting PowerShell in Visual Studio Code 1.安装visual studio code 2.安装powershell extension 3.打 ...
- 记录一下 ajax的基础传送
传数据 var json = $("#form").serializeObject(); $.ajax({ url: "/getUser", type: &qu ...