使用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 ...
随机推荐
- IntelliJ IDEA使用心得之插件篇
今天和大家分享下插件的安装方法,顺便推荐几个非常好用的插件. 1.安装插件 在工具栏中,点击进入IDE设置界面. 插件仓库界面: 值得注意的是,每次安装/卸载插件后,需要重启IDE. 2.好用的插件 ...
- Python数据结构之一——list(列表)
Python版本:3.6.2 操作系统:Windows 作者:SmallWZQ Python包含6种常见的内建序列.它们分别是列表.元祖.字符串.Unicode字符串.buffer(memory ...
- Linux 虚拟IP
虚拟IP Linux网卡上绑定另一个虚拟ip,即网卡上一个真实ip一个虚拟ip.当然通过这2个ip都可以连接到该主机. 实现原理主要是靠TCP/IP的ARP协议.因为ip地址只是一个逻辑 地址,在以太 ...
- 搭建SS服务器
体验: http://ss.ishadowx.com/ centos7 安装shadowsocks客户端 http://blog.csdn.net/guyan0319/article/details/ ...
- Python比较运算符
判断两个对象之间的关系,和条件选择和循环结合使用的 以下假设变量a为10,变量b为20: 示例1:输入三个互不相等的整数,按照从小到大输出 num01,num02,num03 = eval(input ...
- CSS单行、多行文本溢出显示省略号
如果实现单行文本的溢出显示省略号小伙伴们应该都知道用text-overflow:ellipsis属性来,当然还需要加宽度width属来兼容部分浏览. 实现方法: overflow: hidden; t ...
- Mock拦截ajax请求
//mock拦截ajax请求 ,生成随机数据Mock.mock('./servlet/UserServlet?method=getUser',{ 'list|1-5':[{ 'username':'@ ...
- 试用MarkDown
自定义界面风格 可以在设置中选择日间,或者夜间模式进行定义.具体的定义项的说明,可以查看菜单栏 (Windows版本位于托盘按钮上) 自定义的帮助. MarkEditor几乎所有跟色彩有关的界面,都已 ...
- maven中的profile文件的解析
<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/20 ...
- python资源推荐
一.文档教程 1. 廖雪峰python教程 廖老师的教程我相信不用说了吧,每个学习python的人或多或少都听说过他,对我的帮助很大. 2.python中文学习大本营 名字叫做python中文学习大本 ...