利用Aspose.Cells导出Datatable数据
面对一些的格式各样的到处数据的要求,自学了一点 Aspose.Cells中操作Excel知识,如下代码:
/// <summary>
/// DataTable导出Excel
/// </summary>
/// <param name="page">当前页面</param>
/// <param name="my_dt">DataTable</param>
/// <param name="fileName">文件名</param>
/// <param name="title">输入的抬头</param>
public static void ExportExcel(Page page, DataTable my_dt, string fileName, string title = "")
{
Workbook my_wb = new Workbook();
Worksheet sheet = my_wb.Worksheets[];
//title的样式
Aspose.Cells.Style t_style = my_wb.Styles[my_wb.Styles.Add()];
t_style.HorizontalAlignment = TextAlignmentType.Center;//居中
t_style.Font.IsBold = true;
t_style.Font.Name = "宋体";
t_style.Font.Size = ;
t_style.Borders.SetStyle(CellBorderType.Thin);//边框样式
t_style.Borders.DiagonalStyle = CellBorderType.None;
//设置单元格背景色
t_style.ForegroundColor = System.Drawing.Color.FromArgb(153, 204, 0);
t_style.Pattern = BackgroundType.Solid;
//header 样式
Aspose.Cells.Style h_style = my_wb.Styles[my_wb.Styles.Add()];
h_style.HorizontalAlignment = TextAlignmentType.Center;//居中
h_style.Font.IsBold = true;
h_style.Font.Name = "宋体";
h_style.Font.Size = ;
h_style.Borders.SetStyle(CellBorderType.Thin);//边框样式
h_style.Borders.DiagonalStyle = CellBorderType.None;//花纹
h_style.Borders[BorderType.RightBorder].LineStyle = CellBorderType.Thin;
//Row样式
Aspose.Cells.Style r_style = my_wb.Styles[my_wb.Styles.Add()];
r_style.HorizontalAlignment = TextAlignmentType.Center;//居中
r_style.Font.IsBold = false;
r_style.Font.Name = "宋体";
r_style.Font.Size = ;
r_style.Borders.SetStyle(CellBorderType.Thin);//边框样式
r_style.Borders.DiagonalStyle = CellBorderType.None;
int tempRow = ;
if (title != "")
{
//标题的写入
sheet.Cells.Merge(, , , my_dt.Columns.Count);//单元格从第几行第几列跨不跨行
Range range = sheet.Cells.CreateRange(, , , my_dt.Columns.Count);//所在区域
Cell Cell = sheet.Cells[, ];//一个单元格
Cell.PutValue(title);
range.Style = t_style;
tempRow++;
} //列的输入
for (var i = ; i < my_dt.Columns.Count; i++)
{
sheet.Cells.Merge(tempRow, i, , );//单元格从第几行第几列跨不跨行
Cell m_Cell = sheet.Cells[tempRow, i];//一小格
m_Cell.PutValue(my_dt.Columns[i].ColumnName);
m_Cell.SetStyle(h_style);
}
tempRow++;
//行的输出
for (var i = ; i < my_dt.Columns.Count; i++)
{
for (var j = ; j < my_dt.Rows.Count; j++)
{
sheet.Cells[j + tempRow, i].PutValue(my_dt.Rows[j][i]);
sheet.Cells[j + tempRow, i].SetStyle(r_style);
}
}
sheet.Cells.SetRowHeight(, );//设置行高
//sheet.Cells.SetColumnWidth(1, 20);//设置列宽
sheet.AutoFitColumns(); //列宽自动匹配,当列宽过长是收缩 fileName = System.Web.HttpUtility.UrlEncode(fileName + ".xls", System.Text.Encoding.UTF8);//文件名编码 my_wb.Save(fileName, FileFormatType.Excel2003, SaveType.OpenInExcel, page.Response);
page.Response.End(); }
利用Aspose.Cells导出Datatable数据的更多相关文章
- 怎么利用Aspose.Cells 获取excel 数据表中sheet的名称
说明:开发环境 vs2012 asp.net mvc4 c# 利用Aspose.Cells 获取Excel数据表的sheet的名称,并把获取的名称赋值给easyUI 的combobox 1.运行效果 ...
- Aspose.Cells导出Excel(1)
利用Aspose.Cells导出excel 注意的问题 1.DataTable的处理 2.进行编码,便于中文名文件下载 3.别忘了Aspose.Cells.dll(可以自己在网上搜索) public ...
- 利用Aspose.Cells完成easyUI中DataGrid数据的Excel导出功能
我准备在项目中实现该功能之前,google发现大部分代码都是利用一般处理程序HttpHandler实现的服务器端数据的Excel导出,但是这样存在的问题是ashx读取的数据一般都是数据库中视图的数据, ...
- 利用Aspose.cells 将查询出的数据导出为excel,并在浏览器中下载。
正题前的唠叨 本人是才出来工作不久的小白菜一颗,技术很一般,总是会有遇到一些很简单的问题却不知道怎么做,这些问题可能是之前解决过的.发现这个问题,想着提升一下自己的技术水平,将一些学的新的‘好’东西记 ...
- 在ASP.NET MVC中利用Aspose.cells 将查询出的数据导出为excel,并在浏览器中下载。
正题前的唠叨 本人是才出来工作不久的小白菜一颗,技术很一般,总是会有遇到一些很简单的问题却不知道怎么做,这些问题可能是之前解决过的.发现这个问题,想着提升一下自己的技术水平,将一些学的新的'好'东西记 ...
- .net mvc 使用 aspose.cells导出数据
public class AsposeCellsHelper { public Workbook workBook; public Worksheet worksheet; Style style; ...
- 【转】 (C#)利用Aspose.Cells组件导入导出excel文件
Aspose.Cells组件可以不依赖excel来导入导出excel文件: 导入: public static System.Data.DataTable ReadExcel(String strFi ...
- (C#)利用Aspose.Cells组件导入导出excel文件
Aspose.Cells组件可以不依赖excel来导入导出excel文件: 导入: public static System.Data.DataTable ReadExcel(String strFi ...
- C#使用Aspose.Cells导出Excel简单实现
首先,需要添加引用Aspose.Cells.dll,官网下载地址:http://downloads.aspose.com/cells/net 将DataTable导出Xlsx格式的文件下载(网页输出) ...
随机推荐
- 读书笔记「Python编程:从入门到实践」_11.测试函数
11.1 测试函数 要学习测试,得有要测试的代码.下面是一个简单的函数,它接受名和姓并返回整洁的姓名: def get_formatted_name(first, last): "" ...
- (转)C#开发微信门户及应用(5)--用户分组信息管理
http://www.cnblogs.com/wuhuacong/p/3695351.html 在上个月的对C#开发微信门户及应用做了介绍,写过了几篇的随笔进行分享,由于时间关系,间隔了一段时间没有继 ...
- H5网页涂鸦canvas
最近做了个播放页面,标题和一个iframe;需要对这个iframe可以进行网页涂鸦.网页涂鸦肯定是canvas了.网上找了个差不多的,实验下来问题很多,干脆自己一步步修改,学习. 效果: 本项目没有引 ...
- Java中RunTime.getRunTime().addShutdownHook用法
今天在阅读Tomcat源码的时候,catalina这个类中使用了下边的代码,不是很了解,所以google了一下,然后测试下方法,Tomcat中的相关代码如下: Runtime.getRuntime() ...
- 通过JDBC取Oracle数据库的时间字段时,时间丢失,只剩日期
通过JDBC连接Oracle数据库,在查询的时候发现时间字段取出来值后只剩下了日期,时间消失了.查资料发现跟Oracle jdbc驱动版本有关,这里先贴出解决方案: 修改数据库的连接方式: try { ...
- Linux C(day01)
Linux是一个和Windows类似的操作系统 通常通过终端软件使用Linux操作系统 终端软件里只能使用键盘不能使用鼠标 可以在终端软件里输入各种命令控制计算机 完成各种任务 clear命令可以清除 ...
- CentOS平滑更新nginx版本
目前使用的nginx版本是1.4.4,平滑升级到nginx1.10.1,具体升级操作流程如下: 1.备份当前使用的nginx程序目录 tar -zcvf ./nginx1.4.4bak.tar.gz ...
- python爬虫09 | 上来,自己动 !这就是 selenium 的牛逼之处
作为一个男人 在最高光的时刻 就是说出那句 之后 还不会被人打 ... 虽然在现实生活中你无法这样 但是在这里 就让你体验一番 那种呼风唤雨的感觉 我们之前在爬取某些网站的时候 使用到了一些 pyth ...
- c# 数组 字符串 C#中判断字符串中包含某个字符
string str = "1,2,3,4,5,6,7"; string[] strArray = str.Split(','); //字符串转数组 ...
- 在做公司项目是时,昨天晚上还好的,但是第二天启动tomcat发现tomcat启动了,但是没把项目启动起来
1.问题:在做公司项目是时,昨天晚上还好的,但是第二天启动tomcat发现tomcat启动了,但是没把项目启动起来 2.问题排除: 1)昨天晚上还好着呢,并且没改动代码,排除代码问题.日志中无报错信息 ...