public class AsposeCellsHelper
{
public Workbook workBook;
public Worksheet worksheet;
Style style; /// <summary>
/// 构造函数,不设置工作表名称
/// </summary>
public AsposeCellsHelper()
{
workBook = new Workbook();
worksheet = workBook.Worksheets[0];
} /// <summary>
/// 构造函数,设置工作表名称
/// </summary>
public AsposeCellsHelper(string name)
{
workBook = new Workbook(); if (string.IsNullOrEmpty(name))
{
name = DateTime.Now.ToString("yyyyMMddHHmmssffff");
} if (workBook.Worksheets.Count > 0)
{
worksheet = workBook.Worksheets[0];
worksheet.Name = name;
}
else
{
worksheet = workBook.Worksheets.Add(name);
}
} /// <summary>
/// 创建工作表,并将对象切换为当前创建的工作表
/// </summary>
/// <param name="name"></param>
public void CreateSheet(string name)
{
if (string.IsNullOrEmpty(name))
{
name = DateTime.Now.ToString("yyyyMMddHHmmssffff");
} worksheet = workBook.Worksheets.Add(name);
} //设置单元格样式
public void SetCellStyle(int fontSize, bool IsBold)
{
if (style == null)
{
style = workBook.DefaultStyle;
} //style.BackgroundColor = backgroundColor;
style.Font.Name = "宋体";//文字字体
style.Font.Size = fontSize;//文字大小
//前景色
style.ForegroundColor = Color.White;
style.Font.IsBold = IsBold;//粗体
style.HorizontalAlignment = TextAlignmentType.Center;//文字居中
//线条样式
style.Borders[BorderType.TopBorder].LineStyle = CellBorderType.Thin;
//线条颜色
style.Borders[BorderType.TopBorder].Color = Color.Black;
style.Borders[BorderType.BottomBorder].LineStyle = CellBorderType.Thin;
style.Borders[BorderType.BottomBorder].Color = Color.Black;
style.Borders[BorderType.LeftBorder].LineStyle = CellBorderType.Thin;
style.Borders[BorderType.LeftBorder].Color = Color.Black;
style.Borders[BorderType.RightBorder].LineStyle = CellBorderType.Thin;
style.Borders[BorderType.RightBorder].Color = Color.Black;
} //设置值
public void SetValue(int x, int y, string value,int rowHeight = 20)
{
//设置值
worksheet.Cells[x, y].PutValue(value, false);
//设置样式
worksheet.Cells[x,y].SetStyle(style);
//设置行高
worksheet.Cells.SetRowHeight(x, rowHeight);
} /// <summary>
/// 填充数据到excel,数据填充可自行添加或继承后扩展方法
/// </summary>
/// <param name="dt"></param>
public void SetDataByTable(DataTable dt,string title)
{
DataColumnCollection columns = dt.Columns; int addIndex = 0; //表格标题
if (!string.IsNullOrEmpty(title))
{
addIndex = 1;
SetCellStyle(16, true);
worksheet.Cells.Merge(0, 0, 1, columns.Count);
SetValue(0, 0, title, 30);
} //表头
if (columns.Count > 0)
{
int columnIndex = 0; foreach (DataColumn dc in columns)
{
SetCellStyle(14, true);
SetValue(0 + addIndex, columnIndex, dc.ColumnName, 25);
columnIndex += 1;
}
} //数据
if (dt.Rows.Count > 0)
{
int rowIndex = 1 + addIndex; foreach (DataRow dr in dt.Rows)
{
for (int i = 0; i < columns.Count; i++)
{
SetCellStyle(12, false);
SetValue(rowIndex, i, dr[i].ToString());
} rowIndex += 1;
}
} worksheet.AutoFitColumns();
} /// <summary>
/// 导出excel
/// </summary>
/// <param name="name"></param>
public void ExportExcel(string name)
{
try
{
HttpResponse Response = System.Web.HttpContext.Current.Response; if (Response != null)
{
if (string.IsNullOrEmpty(name))
{
name = DateTime.Now.ToString("yyyyMMddHHmmssfff") + ".xlsx";
} // Save in Xlsx format
workBook.Save(Response, name, ContentDisposition.Attachment, new OoxmlSaveOptions());
Response.End();
}
}
catch (Exception ex)
{
throw ex;
}
finally
{
//可以不写dispose
worksheet.Dispose();
workBook.Dispose();
}
}
}

  

调用代码

public void Export()
{
AsposeCellsHelper aspose = new AsposeCellsHelper("测试导出"); DataTable dt = new DataTable("cart");
DataColumn dc3 = new DataColumn("number", Type.GetType("System.Int16"));
DataColumn dc1 = new DataColumn("prizename", Type.GetType("System.String"));
DataColumn dc2 = new DataColumn("point", Type.GetType("System.Int16"));
DataColumn dc4 = new DataColumn("totalpoint", Type.GetType("System.Int64"));
DataColumn dc5 = new DataColumn("prizeid", Type.GetType("System.String"));
dt.Columns.Add(dc3);
dt.Columns.Add(dc1);
dt.Columns.Add(dc2);
dt.Columns.Add(dc4);
dt.Columns.Add(dc5);
//以上代码完成了DataTable的构架,但是里面是没有任何数据的
for (int i = 0; i < 10; i++)
{
DataRow dr = dt.NewRow();
dr["prizename"] = "娃娃";
dr["point"] = 10;
dr["number"] = i;
dr["totalpoint"] = 10;
dr["prizeid"] = "001";
dt.Rows.Add(dr);
} //aspose.SetDataByTable(dt,string.Empty);
aspose.SetDataByTable(dt, "测试标题");//标题可以传空,可以修改为重载,或者修改SetDataByTable方法的最后一个参数,将其加上默认值,重载的一个变种
aspose.ExportExcel("测试.xlsx");//名称可以传空
}

  

.net mvc 使用 aspose.cells导出数据的更多相关文章

  1. asp.net mvc用aspose.cells 导出xlsx格式的excel。无残留

    public void Export() { HttpResponse Response = System.Web.HttpContext.Current.Response; // Load your ...

  2. Aspose.Cells导出Excel(1)

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

  3. 基于C#语言MVC框架Aspose.Cells控件导出Excel表数据

    控件bin文件下载地址:https://download.csdn.net/download/u012949335/10610726 @{ ViewBag.Title = "xx" ...

  4. 利用Aspose.Cells导出Datatable数据

    面对一些的格式各样的到处数据的要求,自学了一点 Aspose.Cells中操作Excel知识,如下代码: /// <summary> /// DataTable导出Excel /// &l ...

  5. C# 基于Aspose.Cells的数据导出到Excel

    using Aspose.Cells;  void WriteToExcel(string filePath, List<object[]> datas, string sheetName ...

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

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

  7. C#+Aspose.Cells 导出Excel及设置样式 (Webform/Winform)

    在项目中用到,特此记录下来,Aspose.Cells 不依赖机器装没有装EXCEL都可以导出,很方便.具体可以参考其他 http://www.aspose.com/docs/display/cells ...

  8. aspose.cells导出Demo

    /// <summary> /// 导出excel /// </summary> /// <param name="list"></par ...

  9. C# 使用Aspose.Cells 导出Excel

    今天在工作中碰到同事用了一种新型的方式导入excel,在此做个学习记录. 插件:Aspose.Cells 第一步:准备好导出的模板,例子: C#代码: #region 验证数据 if (model = ...

随机推荐

  1. Go语言实现:【剑指offer】构建乘积数组

    该题目来源于牛客网<剑指offer>专题. 给定一个数组A[0,1,-,n-1],请构建一个数组B[0,1,-,n-1],其中B中的元素B[i]=A[0] * A[1] * - * A[i ...

  2. Go语言实现:【剑指offer】数据流中的中位数

    该题目来源于牛客网<剑指offer>专题. 如何得到一个数据流中的中位数?如果从数据流中读出奇数个数值,那么中位数就是所有数值排序之后位于中间的数值.如果从数据流中读出偶数个数值,那么中位 ...

  3. Spring ——Spring IoC容器详解(图示)

    1.1 Spring IoC容器 从昨天的例子当中我们已经知道spring IoC容器的作用,它可以容纳我们所开发的各种Bean.并且我们可以从中获取各种发布在Spring IoC容器里的Bean,并 ...

  4. 二维数组转稀疏数组、稀疏数组恢复二维数组(Java实现)

    public static void main(String[] args) { // 创建一个原始的二维数组 9*9 int chessArr1[][] = new int[9][9]; // 0表 ...

  5. Yandex Big Data Essentials Week1 Unix Command Line Interface Processes managing

    free displays the total amount of free and used memory free [options] top provides a dynamic real-ti ...

  6. centos7 nginx 启动脚本

    [root@localhost ~]# vim /lib/systemd/system/nginx.service [Unit] Description=nginx After=network.tar ...

  7. rc.local 启动内容不生效

    系统版本  CentOS Linux release 7.2.1511 问题 :/etc/rc.local  中的内容 启动机器后不生效 经过检查 /etc/rc.local 是 /etc/rc.d/ ...

  8. CentOS 7的yum更换为国内的阿里云yum源

    Yellow dog Updater(Yum)是CentOS所有版本的默认包管理器,yum主要功能是更方便的添加/删除/更新RPM包,自动解决包的依赖性问题,便于管理大量系统的更新问题,其理念是使用一 ...

  9. Linux 目录解析

      FHS:Filesystem Hierarchy Standard(文件系统目录标准)的缩写,多数Linux版本采用这种文件组织形式,类似于Windows操作系统中c盘的文件目录,FHS采用树形结 ...

  10. 解决关闭SSH进程CobaltStrike自动关闭

    解决关闭SSH进程CobaltStrike自动关闭 0x0 那么为什么ssh一关闭,程序就不再运行了? 答:元凶:SIGHUP 信号 让我们来看看为什么关掉窗口/断开连接会使得正在运行的程序死掉. 在 ...