使用Aspose将DataTable转Excel
0.准备工作
1.下载并引入Aspose.Cells
1.使用Aspose将DataTable转为Excel
1.代码
/// <summary>
/// DataTable转Excel文件
/// </summary>
/// <param name="dt"></param>
/// <param name="path"></param>
/// <returns></returns>
public static bool ExportExcelWithAspose(DataTable dt, string path)
{ if (dt != null)
{
try
{
Aspose.Cells.Workbook workbook = new Aspose.Cells.Workbook();
Aspose.Cells.Worksheet cellSheet = workbook.Worksheets[];
//为head添加样式
Aspose.Cells.Style headStyle = workbook.Styles[workbook.Styles.Add()];
//设置居中
headStyle.HorizontalAlignment = Aspose.Cells.TextAlignmentType.Center;
//设置背景颜色
headStyle.ForegroundColor = System.Drawing.Color.FromArgb(, , );
headStyle.Pattern = BackgroundType.Solid;
headStyle.Font.Size = ;
headStyle.Font.Name = "宋体";
headStyle.Font.IsBold = true; //为单元格添加样式
Aspose.Cells.Style cellStyle = workbook.Styles[workbook.Styles.Add()];
//设置居中
cellStyle.HorizontalAlignment = Aspose.Cells.TextAlignmentType.Center;
cellStyle.Pattern = BackgroundType.Solid;
cellStyle.Font.Size = ;
cellStyle.Font.Name = "宋体"; //设置列宽 从0开始 列宽单位是字符
cellSheet.Cells.SetColumnWidth(, );
cellSheet.Cells.SetColumnWidth(, );
cellSheet.Cells.SetColumnWidth(, );
cellSheet.Cells.SetColumnWidth(, );
cellSheet.Cells.SetColumnWidth(, ); int rowIndex = ;
int colIndex = ;
int colCount = dt.Columns.Count;
int rowCount = dt.Rows.Count;
//Head 列名处理
for (int i = ; i < colCount; i++)
{
cellSheet.Cells[rowIndex, colIndex].PutValue(dt.Columns[i].ColumnName);
cellSheet.Cells[rowIndex, colIndex].SetStyle(headStyle);
colIndex++;
}
rowIndex++;
//Cell 其它单元格处理
for (int i = ; i < rowCount; i++)
{
colIndex = ;
for (int j = ; j < colCount; j++)
{
cellSheet.Cells[rowIndex, colIndex].PutValue(dt.Rows[i][j].ToString());
cellSheet.Cells[rowIndex, colIndex].SetStyle(cellStyle);
colIndex++;
}
rowIndex++;
}
cellSheet.AutoFitColumns(); //列宽自动匹配,当列宽过长是收缩
path = Path.GetFullPath(path);
//workbook.Save(path,SaveFormat.CSV);
workbook.Save(path);
return true;
}
catch (Exception e)
{
throw new Exception("导出Excel失败" + e.Message);
}
}
else
{
return false;
} }
WonderTools.ExportExcelWithAspose(templateDt,filePath); //提供excel的下载
HttpResponse _Response = HttpContext.Current.Response;
_Response.Clear();
_Response.ClearHeaders();
_Response.Buffer = false;
_Response.ContentType = "application/x-excel";
_Response.AppendHeader("Content-Disposition", "attachment;filename=Template.xlsx");
_Response.WriteFile(fileInfo.FullName);
_Response.Flush();
_Response.End();
PPS:
public void ProcessRequest(HttpContext context)
{
context.Response.ContentType = "text/plain";
context.Response.AddHeader("Content-Disposition",
"attachment;filename=" + context.Server.UrlEncode("数据.xlsx")); using (var dt = SqlHelper.ExecuteQuery("SELECT * FROM T_Users"))
{
var workbook = new Workbook();
var sheet = workbook.Worksheets[]; // Header
for (var i = ; i < dt.Columns.Count; i++)
{
sheet.Cells[, i].PutValue(dt.Columns[i].ColumnName);
}
// Content
for (var i = ; i < dt.Rows.Count; i++)
{
for (var j = ; j < dt.Columns.Count; j++)
{
sheet.Cells[i + , j].PutValue(dt.Rows[i][j].ToString());
}
}
workbook.Save(context.Response.OutputStream,SaveFormat.Xlsx);
}
}
使用Aspose将DataTable转Excel的更多相关文章
- NPOI、MyXls、Aspose.Cells 导入导出Excel(转)
Excel导入及导出问题产生: 从接触.net到现在一直在维护一个DataTable导s出到Excel的类,时不时还会维护一个导入类.以下是时不时就会出现的问题: 导出问题: 如果是asp.net,你 ...
- asp.net DataTable导出Excel 自定义列名
1.添加引用NPOI.dll 2.cs文件头部添加 using NPOI.HSSF.UserModel; using NPOI.SS.UserModel; using System.IO; 3.代码如 ...
- DataTable to Excel(使用NPOI、EPPlus将数据表中的数据读取到excel格式内存中)
/// <summary> /// DataTable to Excel(将数据表中的数据读取到excel格式内存中) /// </summary> /// <param ...
- Aspose 强大的服务器端 excel word ppt pdf 处理工具
Aspose 强大的服务器端 excel word ppt pdf 处理工具 http://www.aspose.com/java/word-component.aspx
- Datatable导出Excel
; IRow headerRow = sheet.CreateRow(); ; ; ; iRowIndex++; } ; i < icolIndex; i++) { sheet.AutoSize ...
- Aspose.Cells 导入导出EXCEL(转)
Aspose.Cells 导入导出EXCEL 修改样式 Workbook workbook = new Workbook(); //工作簿 Worksheet ...
- ashx导出dataTable为Excel
一,datatable导出Excel,用户可以选择路径,方法如下: /// <summary> /// DataTable导出到Excel /// </summary> /// ...
- c# Datatable导出Excel
using NPOI.SS.UserModel; using NPOI.XSSF.UserModel; using System; using System.Collections.Generic; ...
- C# DataTable导出EXCEL后身份证、银行卡号等长数字信息显示乱码解决
在DataTable导出EXCEL后发现有些格式显示有问题,比如身份证.银行卡号等大于11位的数字显示为科学计数法.13681-1等 带中划线的两段数字显示为日期格式等. 处理方法如下: public ...
随机推荐
- ASM字节码框架学习之动态代理
ASM字节码操纵框架,可以直接以二进制的形式来来修改已经存在的类或者创建新的类.ASM封装了操作字节码的大部分细节,并提供了非常方便的接口来对字节码进行操作.ASM框架是全功能的,使用ASM字节码框架 ...
- 用js脚本一键下载网页所有图片
年前这两天稍微闲一点了,琢磨了一点js脚本,功能是把当前网页页面上的所有图片一次性保存到本地,免得每次都要对图片右键保存. 测试环境:Chrome开发者模式下(启动Chrome,按F12即可) 测试网 ...
- CentOS上安装GitBlit服务
简单介绍 在上一篇文章中,已经简单的介绍了如何在CentOS的服务器上搭建git服务器.但是这种方式实现的服务器功能比较弱,操作起来也比较繁琐.在网上搜索了一圈,感觉Gitblit比较符合我的需求.接 ...
- 基于layui和bootstrap搭建极简后台管理框架
年前无聊,想自己搭建一个后台管理框架,对比了easyui.Extjs.H-ui.H+UI.layui几个框架,easyui和Extjs虽然功能强大但是界面实在是接受不了,H+UI和layuiAdmin ...
- easyui datagrid 右边框被隐藏
问题前: 如下图: 解决思路: 待文档加载完成后再执行dategrid函数 $(function () { $("#tt").datagrid({ //....... }); }) ...
- 知识点干货--讲一讲final、finally、finalize的区别
"横看成岭侧成峰,远近高低各不同.不识庐山真面目,只缘身在此山中." 这首诗来自于宋朝苏轼<题西林壁>,它的意思是,庐山从正面看,它是一道道连绵起伏的山岭:从侧面看,它 ...
- Eclipse (eclipse-jee-luna-SR2-win32)4.4.2 , jdk1.7, pydev 4.5.5版本的 完成的python环境集成
说明: 下面的搭建python2.x环境需要的条件: jdk1.7 eclipse(版本小于4.5) pydev(版本小于5.0) Eclipse和PyDev搭建完美Python开发环境 Window ...
- wpf 如何让控件左右移动
通过DoubleAnimation可以让控件进行左右移动. <Canvas x:Name="canvas_Shape" HorizontalAlignment="S ...
- aforge 学习-命名空间中文理解
序列 名称 介绍 1 Aforge AForge AForge名称空间的核心名称空间.微软网络框架,其中包含核心类所使用的其他框架的命名空间和类,可以独立用于各种用途. 2 AForge.Cont ...
- 《android开发艺术探索》读书笔记(十二)--Bitmap的加载和Cache
接上篇<android开发艺术探索>读书笔记(十一)--Android的线程和线程池 No1: 目前比较常用的缓存策略是LruCache和DiskLruCache,LruCache常被用作 ...