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导出的更多相关文章

  1. [moka同学笔记]PHPexcel之excel导出和导入

    原案例来自http://www.sucaihuo.com/有修改 1.目录结构(文件不用解释,应该都可以看得懂,直接看代码)

  2. 偷懒小工具 - Excel导出公共类

    说明 最近接了一个任务,就是做一个列表的Excel导出功能.并且有很多页面都会使用这个功能. 导出的Excel大体格式如图 很简单的列表,标题加背景色,然后不同类型,显示方式不一样.对齐方式不一样.不 ...

  3. 转:POI操作Excel导出

    package com.rd.lh.util.excel; import java.beans.PropertyDescriptor; import java.io.FileOutputStream; ...

  4. TP5.0源生Excel导出

    PHPExcel类在TP5里边并不能很好的兼容,使用起来很麻烦. 不像是tp3.2那样直接import()加进来就能new,因为它里边的命名空间找不到.总是说undefined class. 如果是使 ...

  5. java反射学习之二万能EXCEL导出

    一.EXCEL导出的实现过程 假设有一个对象的集合,现在需要将此集合内的所有对象导出到EXCEL中,对象有N个属性:那么我们实现的方式是这样的: 循环这个集合,在循环集合中某个对象的所有属性,将这个对 ...

  6. Devexpress EXCEL导出

    #region EXCEL导出 /// <summary> /// EXCEL导出 /// </summary> /// <param name="saveFi ...

  7. 自己写的java excel导出工具类

    最近项目要用到excel导出功能,之前也写过类似的代码.因为这次项目中多次用到excel导出.这次长了记性整理了一下 分享给大伙 欢迎一起讨论 生成excel的主工具类: public class E ...

  8. 发邮件 和 excel导出中文文件名

    /** * 发邮件 * @param email * @param subject * @param body * @throws UnsupportedEncodingException */ pu ...

  9. asp.net(C#) Excel导出类 导出.xls文件

    ---恢复内容开始--- using Microsoft.Office.Interop.Excel; 针对office 2003需添加引用Microsoft   Excel   11.0   Obje ...

  10. Atitit.excel导出 功能解决方案 php java C#.net版总集合.doc

    Atitit.excel导出 功能解决方案 php java C#.net版总集合.docx 1.1. Excel的保存格式office2003 office2007/2010格式1 1.2. 类库选 ...

随机推荐

  1. MySql中执行计划如何来的——Optimizer Trace

    作者:京东物流 籍磊 1.前言 当谈到MySQL的执行计划时,会有很多同学想:"我就觉得使用其他的执行方案比EXPLAIN语句输出的方案强,凭什么优化器做的决定与我得不一样?".这 ...

  2. 笔记六:进程间的通信(IPC通信之消息队列)

    IPC通信之消息队列 "消息"是在两台计算机间传送的数据单位.消息可以非常简单,例如只包含文本字符串:也可以更复杂,可能包含嵌入对象 .消息被发送到队列中."消息队列&q ...

  3. [C++核心编程] 3、函数提高

    文章目录 3 函数提高 3.1 函数默认参数 3.2 函数占位参数 3.3 函数重载 3.3.1 函数重载概述 3.3.2 函数重载注意事项 3 函数提高 3.1 函数默认参数 在C++中,函数的形参 ...

  4. 面试题:react、vue中的key

    1.虚拟DOM中key的作用     key是虚拟DOM对象的标识,当数据发生变化时,React/Vue会根据[新数据]生成新的[虚拟DOM],随后React/Vue进行[新虚拟DOM]与[旧虚拟DO ...

  5. Prism Sample 10 10-CustomRegistrations

    作用同上节,这里是用修改注册的方式自定义View和ViewModel的关联. protected override void ConfigureViewModelLocator() { base.Co ...

  6. 2020-12-05:go中,map的扩容流程是什么?

    福哥答案2020-12-05:[答案来自此链接:](https://www.bilibili.com/video/BV1Nr4y1w7aa?p=13) 源码位于runtime/map.go文件中的ha ...

  7. vue全家桶进阶之路23:Element UI

    Element UI 是一套基于 Vue.js 的组件库,它提供了一系列常用的 UI 组件,包括表单.弹窗.布局.导航等等.Element UI 的设计风格简洁.易用.美观,且易于定制. Elemen ...

  8. 虚拟机linux系统密码忘记了该怎么办?

    当你的linux系统的密码忘记了该怎么办? 首先不要慌,重启电脑,开机的时候 出现这个页面的时候点击e然后出现这个页面 把里面的ro修改为 rw 修改为rw之后在这一行语句的最后面输入enforcin ...

  9. 【Java】连接MySQL问题总结

    前言 最近在学习Java的数据库相关操作,在看视频时自己找资源而产生的一些问题,在此做个总结. 正文 在刚开始学习的时候,你可能跟着老师这样写代码,虽然某些地方已经冒出了红色的波浪线,但你半信半疑的继 ...

  10. 汉字编码新尝试:字理组字编码方案v0.0

    ↑对,这就是正片↑(同步自敝知乎专栏,不定期更新) 高清(确信)版:http://farter.cn/zzdm/latest.png 不用任何教程,试试对着表解码一下: 43 295 817 146 ...