面对一些的格式各样的到处数据的要求,自学了一点 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数据的更多相关文章

  1. 怎么利用Aspose.Cells 获取excel 数据表中sheet的名称

    说明:开发环境 vs2012 asp.net mvc4 c# 利用Aspose.Cells 获取Excel数据表的sheet的名称,并把获取的名称赋值给easyUI 的combobox 1.运行效果 ...

  2. Aspose.Cells导出Excel(1)

    利用Aspose.Cells导出excel 注意的问题 1.DataTable的处理 2.进行编码,便于中文名文件下载 3.别忘了Aspose.Cells.dll(可以自己在网上搜索) public ...

  3. 利用Aspose.Cells完成easyUI中DataGrid数据的Excel导出功能

    我准备在项目中实现该功能之前,google发现大部分代码都是利用一般处理程序HttpHandler实现的服务器端数据的Excel导出,但是这样存在的问题是ashx读取的数据一般都是数据库中视图的数据, ...

  4. 利用Aspose.cells 将查询出的数据导出为excel,并在浏览器中下载。

    正题前的唠叨 本人是才出来工作不久的小白菜一颗,技术很一般,总是会有遇到一些很简单的问题却不知道怎么做,这些问题可能是之前解决过的.发现这个问题,想着提升一下自己的技术水平,将一些学的新的‘好’东西记 ...

  5. 在ASP.NET MVC中利用Aspose.cells 将查询出的数据导出为excel,并在浏览器中下载。

    正题前的唠叨 本人是才出来工作不久的小白菜一颗,技术很一般,总是会有遇到一些很简单的问题却不知道怎么做,这些问题可能是之前解决过的.发现这个问题,想着提升一下自己的技术水平,将一些学的新的'好'东西记 ...

  6. .net mvc 使用 aspose.cells导出数据

    public class AsposeCellsHelper { public Workbook workBook; public Worksheet worksheet; Style style; ...

  7. 【转】 (C#)利用Aspose.Cells组件导入导出excel文件

    Aspose.Cells组件可以不依赖excel来导入导出excel文件: 导入: public static System.Data.DataTable ReadExcel(String strFi ...

  8. (C#)利用Aspose.Cells组件导入导出excel文件

    Aspose.Cells组件可以不依赖excel来导入导出excel文件: 导入: public static System.Data.DataTable ReadExcel(String strFi ...

  9. C#使用Aspose.Cells导出Excel简单实现

    首先,需要添加引用Aspose.Cells.dll,官网下载地址:http://downloads.aspose.com/cells/net 将DataTable导出Xlsx格式的文件下载(网页输出) ...

随机推荐

  1. Arduino 控制超声波测距模块

    一.实物图 二.例子代码 用到数字2 和3 引脚,还有两个就是vcc GND两个阴脚,用模块连线比较简单

  2. mui scrollTo到指定位置,出现空白页及拉不动的问题解决

    使用方式简介 mui 列表页使用的是 mui的插件实现的上拉加载下拉刷新,但是从详情页回到列表页时 不能回到之前的位置.所以想到了使用缓存. 第一次和第二次的试验是失败的.失败后,就想用其他办法来解决 ...

  3. 使用Java生成具有安全哈希的QR码

    这是关于如何在Java中使用salt生成QR代码和安全散列字符串的分步教程. 首先,需要一个可以处理QR码的库,我决定使用Zebra Crossing("ZXing")库,因为它简 ...

  4. WPF动态折线图

    此项目源码下载地址:https://github.com/lizhiqiang0204/WpfDynamicChart 效果图如下: 此项目把折线图制作成了一个控件,在主界面设置好参数直接调用即可,下 ...

  5. javaee Properties键值对写入和读取方法

    package Zjshuchu; import java.util.Properties; import java.util.Set; public class Demo03 { public st ...

  6. PAT_A1148#Werewolf - Simple Version

    Source: PAT 1148 Werewolf - Simple Version (20 分) Description: Werewolf(狼人杀) is a game in which the ...

  7. 基于分布式框架 Jepsen 的 X-Cluster 正确性测试

    转自:https://mp.weixin.qq.com/s/iOe1VjG1CrHalr_I1PKdKw 原创 2017-08-27 严祥光(祥光) 阿里巴巴数据库技术 1 概述 AliSQL X-C ...

  8. 在微信小程序里使用 watch 和 computed

    在开发 vue 的时候,我们可以使用 watch 和 computed 很方便的检测数据的变化,从而做出相应的改变,但是在小程序里,只能在数据改变时手动触发 this.setData(),那么如何给小 ...

  9. Problem 20

    Problem 20 问题网址:https://projecteuler.net/problem=20 n! means n × (n − 1) × ... × 3 × 2 × 1阶乘For exam ...

  10. struts2中<jsp:forward>跳转时报404错误的问题

    index.jsp页面:     <jsp:forward page="show.action"></jsp:forward>      在struts.x ...