Core 导出(流和URL两种)

时间:2022-08-28 11:58:05

1.流

2.URL

两种都是使用Epplus

1.

EPPlus的基本介绍

EPPlus是一个使用Open Office XML(xlsx)文件格式,能读写Excel 2007/2010 文件的开源组件,在导出Excel的时候不需要电脑上安装office。官网地址:http://epplus.codeplex.com/

使用的话直接NuGet上获取对应的dll即可。

但有一点注意,EPPlus不支持2003版本的Excel。

using (ExcelPackage package=new ExcelPackage())
{
ExcelWorksheet worksheet = package.Workbook.Worksheets.Add("Sheet1");//创建worksheet
package.Save();
}

  

单元格赋值
单元格赋值很简单,指定对应的单元格就可以直接赋值,价格遍历循环就可以进行批量的操作了 worksheet.Cells[1, 1].Value = "测试";//直接指定行列数进行赋值
worksheet.Cells["A1"].Value = "赋值";//直接指定单元格进行赋值
设置单元格样式
worksheet.Cells[1, 1].Style.HorizontalAlignment = ExcelHorizontalAlignment.Center;//水平居中
worksheet.Cells[1, 1].Style.VerticalAlignment = ExcelVerticalAlignment.Center;//垂直居中
worksheet.Cells[1, 4, 1, 5].Merge = true;//合并单元格
worksheet.Cells.Style.WrapText = true;//自动换行
设置字体
worksheet.Cells[1, 1].Style.Font.Bold = true;//字体为粗体
worksheet.Cells[1, 1].Style.Font.Color.SetColor(Color.White);//字体颜色
worksheet.Cells[1, 1].Style.Font.Name = "微软雅黑";//字体
worksheet.Cells[1, 1].Style.Font.Size = 12;//字体大小
设置单元格边框
worksheet.Cells[1, 1].Style.Border.BorderAround(ExcelBorderStyle.Thin, Color.FromArgb(191, 191, 191));//设置单元格所有边框
worksheet.Cells[1, 1].Style.Border.Bottom.Style = ExcelBorderStyle.Thin;//单独设置单元格底部边框样式和颜色(上下左右均可分开设置)
worksheet.Cells[1, 1].Style.Border.Bottom.Color.SetColor(Color.FromArgb(191, 191, 191));
设置单元格高和宽
worksheet.Cells.Style.ShrinkToFit = true;//单元格自动适应大小
worksheet.Row(1).Height = 15;//设置行高
worksheet.Row(1).CustomHeight = true;//自动调整行高
worksheet.Column(1).Width = 15;//设置列宽
设置单元格格式
worksheet.Cells[1, 1].Style.Numberformat.Format = "#,##0.00";//这是保留两位小数
设置sheet背景
worksheet.View.ShowGridLines = false;//去掉sheet的网格线
worksheet.Cells.Style.Fill.PatternType = ExcelFillStyle.Solid;
worksheet.Cells.Style.Fill.BackgroundColor.SetColor(Color.LightGray);//设置背景色
worksheet.BackgroundImage.Image = Image.FromFile(@"firstbg.jpg");//设置背景图片
隐藏sheet
worksheet.Hidden = eWorkSheetHidden.Hidden;//隐藏sheet
worksheet.Column(1).Hidden = true;//隐藏某一列
worksheet.Row(1).Hidden = true;//隐藏某一行
图片操作
有时候需求会将某个图片保存至Excel中,代码如下: ExcelPicture picture = worksheet.Drawings.AddPicture("picture", Image.FromFile(@"firstbg.jpg"));//插入图片
picture.SetPosition(100, 100);//设置图片的位置
picture.SetSize(100, 100);//设置图片的大小
Excel加密和锁定
有时候导出的Excel不希望别人修改,可对Excel进行加密,代码如下: worksheet.Protection.IsProtected = true;//设置是否进行锁定
worksheet.Protection.SetPassword("yk");//设置密码
worksheet.Protection.AllowAutoFilter = false;//下面是一些锁定时权限的设置
worksheet.Protection.AllowDeleteColumns = false;
worksheet.Protection.AllowDeleteRows = false;
worksheet.Protection.AllowEditScenarios = false;
worksheet.Protection.AllowEditObject = false;
worksheet.Protection.AllowFormatCells = false;
worksheet.Protection.AllowFormatColumns = false;
worksheet.Protection.AllowFormatRows = false;
worksheet.Protection.AllowInsertColumns = false;
worksheet.Protection.AllowInsertHyperlinks = false;
worksheet.Protection.AllowInsertRows = false;
worksheet.Protection.AllowPivotTables = false;
worksheet.Protection.AllowSelectLockedCells = false;
worksheet.Protection.AllowSelectUnlockedCells = false;
worksheet.Protection.AllowSort = false;

  

public async Task<ActionResult> ExportLog()
{
//string sWebRootFolder = _hostingEnvironment.WebRootPath + "/Excel";
//if (!Directory.Exists(sWebRootFolder))
//{
// Directory.CreateDirectory(sWebRootFolder);//不存在则创建
//} string sFileName = DateTime.Now.ToString("yyyyMMddHHmmss") + ".xlsx";
//FileInfo fileinfo = new FileInfo(Path.Combine(sWebRootFolder, sFileName));
//fileinfo.Delete();
var strem = new MemoryStream(); using (ExcelPackage package = new ExcelPackage(strem))
{
// 添加worksheet ExcelWorksheet worksheet = package.Workbook.Worksheets.Add(sFileName);
//添加头
DailySignInfo cell = new DailySignInfo()
{
Date = "日期",
Name = "姓名",
Attendancetime = "考勤时段",
Time = "时间",
Status = "状态" };
worksheet.Cells[, ].Value = cell.Date;
worksheet.Cells[, ].Value = cell.Name;
worksheet.Cells[, ].Value = cell.Attendancetime;
worksheet.Cells[, ].Value = cell.Time;
worksheet.Cells[, ].Value = cell.Status;
//添加值 int cellnum = ;
foreach (var item in query)
{
worksheet.Cells["A" + cellnum].Value = item.date+ item.create_time;
worksheet.Cells["B" + cellnum].Value = item.realname;
worksheet.Cells["C" + cellnum].Value = item.period_name;
//worksheet.Cells["D" + cellnum].Value = item.create_time;
worksheet.Cells["D" + cellnum].Value = item.status_name; cellnum++;
}
var arr= package.GetAsByteArray();
strem.Dispose();
string type = "application/vnd.openxmlformats-officedocument.spreadsheetml.sheet";
Response.Headers.Add("Access-Control-Expose-Headers", "Content-Disposition");//允许前端获取响应头里面的Content-Disposition
//return Ok("/Excel/" + sFileName);
//return this.File(sFileName, type, sFileName);
return new FileContentResult(arr, type)
{
FileDownloadName = sFileName
};
} }

2.

 private IHostingEnvironment _hostingEnvironment;

        public XlsxController(IHostingEnvironment hostingEnvironment)//名称对应控制器名

        {

            _hostingEnvironment = hostingEnvironment;

        }
 string sWebRootFolder = _hostingEnvironment.WebRootPath;
string sFileName = DateTime.Now.ToString("yyyyMMddHHmmss") + ".xlsx";
FileInfo fileinfo = new FileInfo(Path.Combine(sWebRootFolder, sFileName));
fileinfo.Delete();
using (ExcelPackage package = new ExcelPackage(fileinfo))
{
// 添加worksheet ExcelWorksheet worksheet = package.Workbook.Worksheets.Add(sFileName);
//添加头
DailySignInfo cell = new DailySignInfo()
{
Date = "日期",
Name = "姓名",
Attendancetime = "时段",
Time = "时间",
Status = "状态" };
worksheet.Cells[, ].Value = cell.Date;
worksheet.Cells[, ].Value = cell.Name;
worksheet.Cells[, ].Value = cell.dancetime;
worksheet.Cells[, ].Value = cell.Time;
worksheet.Cells[, ].Value = cell.Status;
//添加值 int cellnum = ;
foreach (var item in query)
{
worksheet.Cells["A" + cellnum].Value = item.date;
worksheet.Cells["B" + cellnum].Value = item.realname;
worksheet.Cells["C" + cellnum].Value = item.period_name;
worksheet.Cells["D" + cellnum].Value = item.create_time;
worksheet.Cells["E" + cellnum].Value = item.status_name; cellnum++;
}
package.Save();
string type = "application/vnd.openxmlformats-officedocument.spreadsheetml.sheet";
return this.File(sFileName, type, sFileName);
}

Core 导出(流和URL两种)的更多相关文章

  1. &period;NET环境下导出Excel表格的两种方式和导入两种类型的Excel表格

    一.导出Excel表格的两种方式,其中两种方式指的是导出XML数据类型的Excel(即保存的时候可以只需要修改扩展名为.xls)和真正的Excel这两种. using System; using Sy ...

  2. &period;NET CORE 2&period;1 导出excel文件的两种方法

    最近在做 MVC 项目的时候遇到项目的导出,下面总结下两种导出到excel 的方法 第一种方法: 将文件写到本地,然后返回这个File 或者返回这个 File 的绝对地址  其中  _hostingE ...

  3. 转 LoadRunner 技巧之THML 与 URL两种录制模式分析

    Loadrunner的Virtual User Generator 提供人脚本的录制功能,对于初学者来说,这大大的降低了编写脚本的门槛,loadrunner提供两种录制脚本的方式:Html_based ...

  4. AE 将地图导出为图片的两种方法

    在ArcGIS的开发中,我们经常需要将当前地图打印(或是转出)到图片文件中.将Map或Layout中的图象转出有两种方法,一种为通过IActiveView的OutPut函数,另外一种是通过IExpor ...

  5. LoadRunner 技巧之THML 与 URL两种录制模式分析

    Loadrunner的Virtual User Generator 提供人脚本的录制功能,对于初学者来说,这大大的降低了编写脚本的门槛,loadrunner提供两种录制脚本的方式:Html_based ...

  6. 转:HTML与URL两种录制模式分析

    Loadrunner的Virtual User Generator 提供人脚本的录制功能,对于初学者来说,这大大的降低了编写脚本的门槛,loadrunner提供两种录制脚本的方式:Html_based ...

  7. HTML与URL两种录制模式分析(转)

    如何选择两种模式? 1.基于浏览器的应用程序推荐使用HTML-Based Script. 2.不是基于浏览器的应用程序推荐使用URL-Based Script. 3.如果基于浏览器的应用程序中包含了J ...

  8. &lbrack;网络转载 &rsqb;LoadRunner技巧之THML与URL两种录制模式分析

    loadrunner自带网站的访问 Html_based script模式 Action() { web_url("WebTours", "URL=http://127. ...

  9. jdbc链接数据库的url两种写法

    首先看下面两个jdbc的url 一:jdbc.url=jdbc:oracle:thin:@100.2.194.200:1521/abc二:jdbc.url=jdbc:oracle:thin:@100. ...

随机推荐

  1. MySQL学习笔记(2&sol;2)

    SQL种类 DDL/DML/DQL/DCL 中括号[]里面的表示可选,大括号{}里面的表示必须从里面选一个,FEILED表示字段. 数据定义语言(DDL):CREATE.DROP.ALTER 用于定义 ...

  2. BSTestRunner——一个丑在路上的python unnitest HTML报告生成Runner

    今天忽然看到HTMLTestRunner的样式,第一眼的感觉是样式有点过时了,稍微看了下源码,果然最后更新时间是几年前,由于实现比较简单,所以顺手将样式改一下. 效果图 设计思想 既然有UI,那么如果 ...

  3. mybatis中的oracle和mysql分页

    这段时间一直在用mybatis+spring+springMVC的框架,总结点东西吧. mybatis的oracle分页写法: <?xml version="1.0" enc ...

  4. 实时数据采集传输软件LDM配置

    本环境一共两个机器:cma.ldm87.gov.cn(hostname)机器作为upstream LDM,cma.ldm84.gov.cn(hostname)机器作为downstream LDM.下面 ...

  5. SQL Server调优系列基础篇 - 常用运算符总结

    前言 上一篇我们介绍了如何查看查询计划,本篇将介绍在我们查看的查询计划时的分析技巧,以及几种我们常用的运算符优化技巧,同样侧重基础知识的掌握. 通过本篇可以了解我们平常所写的T-SQL语句,在SQL ...

  6. Python简易爬虫

    经常需要下载论文,每次都需要去网页上搜索,然后点击下载,实在麻烦,正好最近刚入门Python,心血来潮,想着写一个爬虫 经过一天查阅资料,基本算是完成了,但是还是不足,比如对知网和万方暂时还不行,但是 ...

  7. Hexo &plus; github 打造个人博客

    前两年开始用 wordpress 搭了一个网站,但服务器是在 Linode 上,之所以要放在 Linode 上,要从买的域名说起,因为我买的域名是 fengzheng.pub ,.pub 是不允许备案 ...

  8. Stack Overflow:研究发现访问PHP和 Android的流量更可能来自低收入国家

    Stack Overflow 的数据科学家  David Robinson 发现,软件行业的分工让不同发达地区的程序员依赖于不同的编程语言.软件已经是一个全球性的行业,也有高端低端之分,最高端的是数据 ...

  9. js模拟form打开新窗口

    <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/ ...

  10. CodeForces Round &num;527 &lpar;Div3&rpar; D2&period; Great Vova Wall &lpar;Version 2&rpar;

    http://codeforces.com/contest/1092/problem/D2 Vova's family is building the Great Vova Wall (named b ...