2021-3-9 excel导出
public void ExportExcel(DataTable dt)
{
//要添加epplus的nuget包
ExcelPackage.LicenseContext = LicenseContext.NonCommercial;//epplus的5.0版本以上的要加这行非商用声明
//新建一个 Excel 工作簿
ExcelPackage package = new ExcelPackage(); // 添加一个 sheet 表
ExcelWorksheet worksheet = package.Workbook.Worksheets.Add(dt.TableName); int rowIndex = 1; // 起始行为 1
int colIndex = 1; // 起始列为 1 //设置列名
for (int i = 0; i < dt.Columns.Count; i++)
{
worksheet.Cells[rowIndex, colIndex + i].Value = dt.Columns[i].ColumnName; //自动调整列宽,也可以指定最小宽度和最大宽度
worksheet.Column(colIndex + i).AutoFit();
} // 跳过第一列列名
rowIndex++; //写入数据
for (int i = 0; i < dt.Rows.Count; i++)
{
for (int j = 0; j < dt.Columns.Count; j++)
{
worksheet.Cells[rowIndex + i, colIndex + j].Value = dt.Rows[i][j].ToString();
} //自动调整行高
worksheet.Row(rowIndex + i).CustomHeight = true;
} //设置字体,也可以是中文,比如:宋体
worksheet.Cells.Style.Font.Name = "Arial"; //字体加粗
worksheet.Cells.Style.Font.Bold = true; //字体大小
worksheet.Cells.Style.Font.Size = 12; //字体颜色
//worksheet.Cells.Style.Font.Color.SetColor(System.Drawing.Color.Black); //单元格背景样式,要设置背景颜色必须先设置背景样式
//worksheet.Cells.Style.Fill.PatternType = ExcelFillStyle.Solid;
//单元格背景颜色
//worksheet.Cells.Style.Fill.BackgroundColor.SetColor(System.Drawing.Color.DimGray); //设置单元格所有边框样式和颜色
//worksheet.Cells.Style.Border.BorderAround(ExcelBorderStyle.Thin, System.Drawing.ColorTranslator.FromHtml("#0097DD")); //单独设置单元格四边框 Top、Bottom、Left、Right 的样式和颜色
//worksheet.Cells.Style.Border.Top.Style = ExcelBorderStyle.Thin;
//worksheet.Cells.Style.Border.Top.Color.SetColor(System.Drawing.Color.Black); //垂直居中
worksheet.Cells.Style.VerticalAlignment = ExcelVerticalAlignment.Center; //水平居中
worksheet.Cells.Style.HorizontalAlignment = ExcelHorizontalAlignment.Center; //单元格是否自动换行
worksheet.Cells.Style.WrapText = false; //设置单元格格式为文本
worksheet.Cells.Style.Numberformat.Format = "@"; //单元格自动适应大小
worksheet.Cells.Style.ShrinkToFit = true; //worksheet.Dispose();
//package.Dispose();
////第一种保存方式
//string path1 ="";
//string filePath1 = path1 + DateTime.Now.ToString("yyyy-MM-dd-HH-mm-ss") + ".xlsx";
//FileStream fileStream1 = new FileStream(filePath1, FileMode.Create);
////保存至指定文件
//FileInfo fileInfo = new FileInfo(filePath1);
//package.SaveAs(fileInfo); ////第二种保存方式
string path2 = ""; /*HttpContext.Current.Server.MapPath("Export/");*/
string filePath2 = path2 + DateTime.Now.ToString("yyyy-MM-dd-HH-mm-ss") + ".xlsx";
FileStream fileStream2 = new FileStream(filePath2,FileMode.Create, FileAccess.ReadWrite, FileShare.ReadWrite);
//写入文件流
package.SaveAs(fileStream2); //创建一个内存流,然后转换为字节数组,输出到浏览器下载
//MemoryStream ms = new MemoryStream();
//package.SaveAs(ms);
//byte[] bytes = ms.ToArray(); //也可以直接获取流
//Stream stream = package.Stream; //也可以直接获取字节数组
byte[] bytes = package.GetAsByteArray(); //调用下面的方法输出到浏览器下载
//OutputClient(bytes);
fileStream2.Flush();
fileStream2.Close();
worksheet.Dispose();
package.Dispose();
}
2021-3-9 excel导出的更多相关文章
- [moka同学笔记]PHPexcel之excel导出和导入
原案例来自http://www.sucaihuo.com/有修改 1.目录结构(文件不用解释,应该都可以看得懂,直接看代码)
- 偷懒小工具 - Excel导出公共类
说明 最近接了一个任务,就是做一个列表的Excel导出功能.并且有很多页面都会使用这个功能. 导出的Excel大体格式如图 很简单的列表,标题加背景色,然后不同类型,显示方式不一样.对齐方式不一样.不 ...
- 转:POI操作Excel导出
package com.rd.lh.util.excel; import java.beans.PropertyDescriptor; import java.io.FileOutputStream; ...
- TP5.0源生Excel导出
PHPExcel类在TP5里边并不能很好的兼容,使用起来很麻烦. 不像是tp3.2那样直接import()加进来就能new,因为它里边的命名空间找不到.总是说undefined class. 如果是使 ...
- java反射学习之二万能EXCEL导出
一.EXCEL导出的实现过程 假设有一个对象的集合,现在需要将此集合内的所有对象导出到EXCEL中,对象有N个属性:那么我们实现的方式是这样的: 循环这个集合,在循环集合中某个对象的所有属性,将这个对 ...
- Devexpress EXCEL导出
#region EXCEL导出 /// <summary> /// EXCEL导出 /// </summary> /// <param name="saveFi ...
- 自己写的java excel导出工具类
最近项目要用到excel导出功能,之前也写过类似的代码.因为这次项目中多次用到excel导出.这次长了记性整理了一下 分享给大伙 欢迎一起讨论 生成excel的主工具类: public class E ...
- 发邮件 和 excel导出中文文件名
/** * 发邮件 * @param email * @param subject * @param body * @throws UnsupportedEncodingException */ pu ...
- asp.net(C#) Excel导出类 导出.xls文件
---恢复内容开始--- using Microsoft.Office.Interop.Excel; 针对office 2003需添加引用Microsoft Excel 11.0 Obje ...
- Atitit.excel导出 功能解决方案 php java C#.net版总集合.doc
Atitit.excel导出 功能解决方案 php java C#.net版总集合.docx 1.1. Excel的保存格式office2003 office2007/2010格式1 1.2. 类库选 ...
随机推荐
- RTCP常见报文格式(申请I帧/RR/SR/SDES)
本篇文章是基于对RTCP基本协议有所了解情况下,进行说明,因为RTCP在丢包重传(ARQ)方面需要使用 到,具体可以查看RTCP相关rfc文档或者博客.所以本篇文章主要是从抓包报文角度来看RTCP协议 ...
- VS 查看引用的DLL/Nuget包源码时,无法看到注释
一.问题描述 在下面的截图中,我们发现,源码有添加一段注释. 然后通过Nuget包引用,在VS中用Reshaper反编译时,发现没有注释: 原来,DLL是默认不带注释的.即你生成一个DLL,给另一个项 ...
- ArcGIS Pro创建、发布、调用GP服务全过程示例(等高线分析)
在之前的文章介绍过使用ArcMap发布GP分析服务,由于ArcGIS后续不在更新ArcMap,改用ArcGIS Pro,本文对ArcGIS Pro发布GP分析服务进行说明. 本文以等高线分析为例,使用 ...
- 【CSS】画出宽度为1像素的线或边框
由于多倍的设计图在移动设备上显示时会将设计图进行缩小到视口宽度,而1px的边框没有随着页面进行缩小而导致效果太粗,想要还原设计图1px的显示效果,因此需要一些方法来实现边框宽度小于1px. 实现方法很 ...
- 2023-05-12:存在一个由 n 个节点组成的无向连通图,图中的节点按从 0 到 n - 1 编号, 给你一个数组 graph 表示这个图, 其中,graph[i] 是一个列表,由所有与节点 i
2023-05-12:存在一个由 n 个节点组成的无向连通图,图中的节点按从 0 到 n - 1 编号, 给你一个数组 graph 表示这个图, 其中,graph[i] 是一个列表,由所有与节点 i ...
- 2022-03-19:已知一棵二叉树上所有的值都不一样, 给定这棵二叉树的头节点head, 给定一个整型数组arr,arr里放着不同的值,每个值一定在树上 返回数组里所有值的最低公共祖先。
2022-03-19:已知一棵二叉树上所有的值都不一样, 给定这棵二叉树的头节点head, 给定一个整型数组arr,arr里放着不同的值,每个值一定在树上 返回数组里所有值的最低公共祖先. 答案202 ...
- ESLint: Expected a space before ‘/>;‘, but not found. (vue/html-closing-bracket-spacing)
文件->设置->编辑器->代码样式->HTML->其他-->在空的标签(打钩)
- Linux:论如何在虚拟机上挂载多个镜像?
欢迎来到千汐 博客名称:千秋云染博客网址:https://www.cnblogs.com/skyrainmom 寄语:在混乱不堪的世界里你只管前行,时间替会证明一切 world cookie 我可 ...
- 【Java】水果超市管理系统
前言 说是个系统,看着像实训的产物,但实际上这是Java课程最后一个关于jdbc的大实验,yes,挺大的. 过程 看着视频里的一堆一堆的文件,逻辑混乱的讲解,我决定 我自己写这个系统 说干就干: 分析 ...
- 域名配置动态代理后,为什么每次 ping 还是相同的 ip?
当你配置了域名的动态代理后,ping 命令所显示的 IP 地址不会随着代理服务器的变化而变化. 这是因为 ping 命令使用了 DNS 缓存,它会将域名解析结果缓存到本地,直到缓存过期或者手动清除缓存 ...