在项目中用到,特此记录下来,Aspose.Cells 不依赖机器装没有装EXCEL都可以导出,很方便。具体可以参考其他

http://www.aspose.com/docs/display/cellsnet/Importing+Data+to+Worksheets#ImportingDatatoWorksheets-array

Webfrom版本:

效果如下:

  1. protected void btnAsnExport_ServerClick(object sender, EventArgs e)
  2. {
  3. var getAsnData = SearchDataClass.GetAsnSearchData(txtAsnNo.Value,
  4. hfCustomerID.Value, txtTimeSelect.Value,txtSku.Value,txtSkuContent.Value);
  5. //设置导出excel列的标题
  6. ArrayList ColTitle = new ArrayList()
  7. { "ASN编号", "SKU", "产品描述", "预期数量", "收货数量",
  8. "单位","收货库位","收货时间","所属客户","ASN状态","ASN创建时间" };
  9. //string[] strTitle = new string[] { "ASNNo", "SKU", "SKUDescrC", "ExpectedQty", "ReceivedQty", "UOM",
  10. "ReceivingLocation", "ReceivedTime", "CustomerID", "CodeName_C" };
  11. if (getAsnData.ToList().Count > 0)
  12. {
  13. Aspose.Cells.Workbook workbook = new Aspose.Cells.Workbook();
  14. //创建一个sheet
  15. Aspose.Cells.Worksheet sheet = workbook.Worksheets[0];
  16. //为单元格添加样式
  17. Aspose.Cells.Style style = workbook.Styles[workbook.Styles.Add()];
  18. style.HorizontalAlignment = Aspose.Cells.TextAlignmentType.Center;
  19. style.Borders[Aspose.Cells.BorderType.LeftBorder].LineStyle = Aspose.Cells.CellBorderType.Thin; //应用边界线 左边界线
  20. style.Borders[Aspose.Cells.BorderType.RightBorder].LineStyle = Aspose.Cells.CellBorderType.Thin; //应用边界线 右边界线
  21. style.Borders[Aspose.Cells.BorderType.TopBorder].LineStyle = Aspose.Cells.CellBorderType.Thin; //应用边界线 上边界线
  22. style.Borders[Aspose.Cells.BorderType.BottomBorder].LineStyle = Aspose.Cells.CellBorderType.Thin; //应用边界线 下边界线
  23. //给各列的标题行PutValue赋值
  24. int currow = 0;
  25. byte curcol = 0;
  26. //sheet.Cells.ImportCustomObjects((System.Collections.ICollection)getAsnData,
  27. //strTitle, true, 0, 0, getAsnData.Count, true, "yyyy/MM/dd HH:mm", false);
  28. sheet.Cells.ImportCustomObjects((System.Collections.ICollection)getAsnData,
  29. null, true, 0, 0, getAsnData.Count, true, "yyyy/MM/dd HH:mm", false);
  30. // 设置内容样式
  31. for (int i = 0; i < getAsnData.ToList().Count; i++)
  32. {
  33. for (int j = 0; j < 11; j++)
  34. {
  35. sheet.Cells[i + 1, j].Style = style;
  36. sheet.Cells[i + 1, 2].Style.HorizontalAlignment = Aspose.Cells.TextAlignmentType.Left;
  37. sheet.Cells[i + 1, 7].Style.Custom = "yyyy/MM/dd HH:mm";
  38. sheet.Cells[i + 1, 10].Style.Custom = "yyyy/MM/dd HH:mm";
  39. }
  40. }
  41. // 设置标题样式及背景色
  42. foreach (string s in ColTitle)
  43. {
  44. sheet.Cells[currow, curcol].PutValue(s);
  45. style.ForegroundColor = System.Drawing.Color.FromArgb(153, 204, 0);
  46. style.Pattern = Aspose.Cells.BackgroundType.Solid;
  47. style.Font.IsBold = true;
  48. sheet.Cells[currow, curcol].Style = style;
  49. curcol++;
  50. }
  51. Aspose.Cells.Cells cells = sheet.Cells;
  52. //设置标题行高
  53. cells.SetRowHeight(0, 30);
  54. //让各列自适应宽度
  55. sheet.AutoFitColumns();
  56. //生成数据流
  57. System.IO.MemoryStream ms = workbook.SaveToStream();
  58. byte[] bt = ms.ToArray();
  59. //客户端保存的文件名
  60. string fileName = "入库查询数据导出" + DateTime.Now.ToString("yyyyMMddHHmmss") + ".xls";
  61. //以字符流的形式下载文件
  62. Response.ContentType = "application/vnd.ms-excel";
  63. //通知浏览器下载文件而不是打开
  64. Response.AddHeader("Content-Disposition", "attachment; filename=" + HttpUtility.UrlEncode(fileName, System.Text.Encoding.UTF8));
  65. Response.BinaryWrite(bt);
  66. Response.Flush();
  67. Response.End();
  68. }
  69. }

Winform版本:

效果图如下:


    1. public void ExportExcelWithAspose(MDataTable dt, string fileName)
    2. {
    3. string saveFileName = "";
    4. SaveFileDialog saveDialog = new SaveFileDialog();
    5. saveDialog.DefaultExt = "xls";
    6. saveDialog.Filter = "Excel文件|*.xls";
    7. saveDialog.FileName = fileName;
    8. saveDialog.ShowDialog();
    9. saveFileName = saveDialog.FileName;
    10. if (saveFileName.IndexOf(":") < 0) return; //被点了取消
    11. Microsoft.Office.Interop.Excel.Application xlApp = new Microsoft.Office.Interop.Excel.Application();
    12. if (xlApp == null)
    13. {
    14. MessageBox.Show("无法创建Excel对象,可能您的机子未安装Excel");
    15. return;
    16. }
    17. try
    18. {
    19. Microsoft.Office.Interop.Excel.Workbooks workbooks = xlApp.Workbooks;
    20. Aspose.Cells.Workbook workbook = new Aspose.Cells.Workbook();
    21. Aspose.Cells.Worksheet cellSheet = workbook.Worksheets[0];
    22. Aspose.Cells.Cells cells = cellSheet.Cells ;//单元格
    23. //为单元格添加样式
    24. Aspose.Cells.Style style = workbook.Styles[workbook.Styles.Add()];
    25. //设置居中
    26. style.HorizontalAlignment = Aspose.Cells.TextAlignmentType.Center;
    27. //行索引
    28. int rowIndex = 0;
    29. //列索引
    30. int colIndex = 0;
    31. //列总数
    32. int colCount = dt.Columns.Count;
    33. //总行数
    34. int rowCount = dt.Rows.Count;
    35. rowIndex++;
    36. for (int i = 0; i < rowCount; i++)
    37. {
    38. colIndex = 0;
    39. for (int j = 0; j < colCount; j++)
    40. {
    41. if (j == 5) { cellSheet.Cells[rowIndex, colIndex].PutValue(Convert.ToDateTime (dt.Rows[i][j].Value).ToString("yyyy/MM/dd HH:mm:ss")); }
    42. else { cellSheet.Cells[rowIndex, colIndex].PutValue(dt.Rows[i][j].Value); }
    43. style.Borders[Aspose.Cells.BorderType.LeftBorder].LineStyle = Aspose.Cells.CellBorderType.Thin; //应用边界线 左边界线
    44. style.Borders[Aspose.Cells.BorderType.RightBorder].LineStyle = Aspose.Cells.CellBorderType.Thin; //应用边界线 右边界线
    45. style.Borders[Aspose.Cells.BorderType.TopBorder].LineStyle = Aspose.Cells.CellBorderType.Thin; //应用边界线 上边界线
    46. style.Borders[Aspose.Cells.BorderType.BottomBorder].LineStyle = Aspose.Cells.CellBorderType.Thin; //应用边界线 下边界线
    47. cellSheet.Cells[rowIndex, colIndex].Style = style;
    48. colIndex++;
    49. }
    50. rowIndex++;
    51. }
    52. //清除内容时行列索引值为0
    53. rowIndex = 0; colIndex = 0;
    54. //列名的处理
    55. for (int i = 0; i < colCount; i++)
    56. {
    57. cellSheet.Cells[rowIndex, colIndex].PutValue(dt.Columns[i].ColumnName);
    58. //设置背景颜色
    59. style.ForegroundColor = System.Drawing.Color.FromArgb(153, 204, 0);
    60. style.Pattern = Aspose.Cells.BackgroundType.Solid;
    61. style.Font.IsBold = true;
    62. style.IsTextWrapped = true;
    63. cells.SetRowHeight(0, 38);//设置行高
    64. cellSheet.Cells[rowIndex, colIndex].Style = style;
    65. colIndex++;
    66. }
    67. cellSheet.AutoFitColumns();
    68. workbook.Save(Path.GetFullPath(saveFileName));
    69. xlApp.Quit();
    70. GC.Collect();//强行销毁
    71. MessageBox.Show("文件: " + fileName + ".xls 保存成功", "信息提示", MessageBoxButtons.OK,MessageBoxIcon.Information);
    72. }
    73. catch (Exception ex)
    74. {
    75. MessageBox.Show("导出文件时出错,文件可能正被打开!\n" + ex.Message);
    76. }
    77. }

C#+Aspose.Cells 导出Excel及设置样式 (Webform/Winform)的更多相关文章

  1. Aspose.Cells导出Excel(1)

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

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

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

  3. Aspose.Cells导出Excel(2)

    DataTable dtTitle = ds.Tables[]; DataTable dtDetail = ds.Tables[]; int columns = dtTitle.Columns.Cou ...

  4. aspose.Cells 导出Excel

    aspose aspse.Cells可以操作Excel,且不依赖于系统环境. 使用模板,通过绑定输出数据源 这种适合于对格式没有特别要求的,直接绑定数据源即可.和数据绑定控件差不多. Workbook ...

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

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

  6. Aspose.Cells 导出 excel

    Aspose.Cells.Workbook book = new Aspose.Cells.Workbook(); Aspose.Cells.Worksheet sheet = book.Worksh ...

  7. aspose.cell 给excel表格设置样式

    方法1: Style styleTitle = workbook.Styles[workbook.Styles.Add()];//新增样式 styleTitle.HorizontalAlignment ...

  8. 使用Aspose.Cells读取Excel

      最新更新请访问: http://denghejun.github.io Aspose.Cells读取Excel非常方便,以下是一个简单的实现读取和导出Excel的操作类: 以下是Aspose.Ce ...

  9. 使用aspose.cell导出excel需要注意什么?

    1.如果导出的数据源是汇总出来的,最好方法是将数据源放到缓存里面,当基本数据源变化的时候,在改变数据2.使用模板导出EXCEL,这样很多样式可以在模板文件里面直接设置,例如:默认打开页签,让列头固定3 ...

随机推荐

  1. 压力测试工具JMeter入门教程<转>

    1.Jmeter 概要描叙 jmeter 是一款专门用于功能测试和压力测试的轻量级测试开发平台.多数情况下是用作压力测试,该测试工具在阿里巴巴有着广泛的使用,估计是不要钱吧,哈哈,功能上来说,整个平台 ...

  2. import 与 from…import 的区别

    首先你要了解 import 与 from…import 的区别. import 模块:导入一个模块:注:相当于导入的是一个文件夹,是个相对路径. from…import:导入了一个模块中的一个函数:注 ...

  3. Scrapy计划表

    第一步 Scrapy 一览:理解Scrapy是什么,他能帮到你什么 安装指南:在电脑上安装Scrapy Scrapy 教程:编写第一个Scrapy项目 示例:通过前人写好的Scrapy项目进行学习 基 ...

  4. Mysql On Mac OS: Remove & Install

    If you downloaded and installed from .dmg package already, and mightbe sometime it sucks because of ...

  5. Android按钮事件的4种写法

    经过前两篇blog的铺垫,我们今天热身一下,做个简单的例子. 目录结构还是引用上篇blog的截图. 具体实现代码: public class MainActivity extends Activity ...

  6. [工具] f.lux – 随时间改变屏幕色温护眼

    f.lux 是一款根据时间变化来改变屏幕色温的软件.让你在深夜也能感受到太阳的温暖,顺便还有助于睡眠. 在 f.lux 里,首先设置一个适合你的变化色温范围,白天的色温控制在 6500K 以下,晚上的 ...

  7. iptables黑/白名单设置(使用ipset 工具)

    ipset介绍 ipset是iptables的扩展,它允许你创建 匹配整个地址集合的规则.而不像普通的iptables链只能单IP匹配, ip集合存储在带索引的数据结构中,这种结构即时集合比较大也可以 ...

  8. vue---进行post和get请求

    参考文档: https://www.jb51.net/article/125717.htm 使用axios <script src="https://unpkg.com/axios/d ...

  9. vue--自定义指令进行验证(1)

    实例代码: <template> <div id="app" class="app"> <h3>{{msg}}</h3 ...

  10. Linux--netstat命令

    netstat:显示网络状态 语法定义:netstat [-acCeFghilMnNoprstuvVwx] [-A<网络类型>][--ip] 参数说明: -a 或 -all :显示所有连线 ...