利用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格式的文件下载(网页输出) ...
随机推荐
- Arduino 控制超声波测距模块
一.实物图 二.例子代码 用到数字2 和3 引脚,还有两个就是vcc GND两个阴脚,用模块连线比较简单
- mui scrollTo到指定位置,出现空白页及拉不动的问题解决
使用方式简介 mui 列表页使用的是 mui的插件实现的上拉加载下拉刷新,但是从详情页回到列表页时 不能回到之前的位置.所以想到了使用缓存. 第一次和第二次的试验是失败的.失败后,就想用其他办法来解决 ...
- 使用Java生成具有安全哈希的QR码
这是关于如何在Java中使用salt生成QR代码和安全散列字符串的分步教程. 首先,需要一个可以处理QR码的库,我决定使用Zebra Crossing("ZXing")库,因为它简 ...
- WPF动态折线图
此项目源码下载地址:https://github.com/lizhiqiang0204/WpfDynamicChart 效果图如下: 此项目把折线图制作成了一个控件,在主界面设置好参数直接调用即可,下 ...
- javaee Properties键值对写入和读取方法
package Zjshuchu; import java.util.Properties; import java.util.Set; public class Demo03 { public st ...
- PAT_A1148#Werewolf - Simple Version
Source: PAT 1148 Werewolf - Simple Version (20 分) Description: Werewolf(狼人杀) is a game in which the ...
- 基于分布式框架 Jepsen 的 X-Cluster 正确性测试
转自:https://mp.weixin.qq.com/s/iOe1VjG1CrHalr_I1PKdKw 原创 2017-08-27 严祥光(祥光) 阿里巴巴数据库技术 1 概述 AliSQL X-C ...
- 在微信小程序里使用 watch 和 computed
在开发 vue 的时候,我们可以使用 watch 和 computed 很方便的检测数据的变化,从而做出相应的改变,但是在小程序里,只能在数据改变时手动触发 this.setData(),那么如何给小 ...
- Problem 20
Problem 20 问题网址:https://projecteuler.net/problem=20 n! means n × (n − 1) × ... × 3 × 2 × 1阶乘For exam ...
- struts2中<jsp:forward>跳转时报404错误的问题
index.jsp页面: <jsp:forward page="show.action"></jsp:forward> 在struts.x ...