在项目中用到,特此记录下来,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. 报错---“node install.js”

    如图 解决方案: 目录中执行 npm install chromedriver --chromedriver_cdnurl=http://cdn.npm.taobao.org/dist/chromed ...

  2. [分布式系统学习]阅读笔记 Distributed systems for fun and profit 之三 时间和顺序

    这是阅读 http://book.mixu.net/distsys/time.html 的笔记,是该系列的第三章. 为什么时间和顺序很重要呢?为什么我们关系事件A发生在事件B之前? 因为分布式系统要解 ...

  3. ADOdb 支持的数据库包括哪些?

    ADOdb 支持的数据库包括 MySQL, PostgreSQL,Interbase,Firebird,Informix,Oracle,MS SQL 7,Foxpro,Access,ADO,Sybas ...

  4. ELK之nginx日志使用json格式输出

    json Nginx默认日志输出格式为文本非json格式,修改配置文件即可输出json格式便于收集以及绘图 修改nginx配置文件添加配置,增加一个json输出格式的日志格式 log_format a ...

  5. Jenkins构建报错(Jenkins is reserved for jobs with matching label expression)解决办法

    Jenkins构建报错Jenkins is reserved for jobs with matching label expression 原因节点配置导致 修改配置

  6. 洛谷P2698 花盆Flowerpot【单调队列】

    题目描述 Farmer John has been having trouble making his plants grow, and needs your help to water them p ...

  7. spark-sklearn(spark扩展scikitlearn)

    (1)官方规定安装条件:此包装具有以下要求: -*最新版本的scikit学习. 版本0.17已经过测试,旧版本也可以使用.- *Spark> = 2.0. Spark可以从对应官网下载[Spar ...

  8. 推荐系统之余弦相似度的Spark实现

    推荐系统之余弦相似度的Spark实现 (1)原理分析    余弦相似度度量是相似度度量中最常用的度量关系,从程序分析中, 第一步是数据的输入, 其次是使用相似性度量公式 最后是对不同用户的递归计算. ...

  9. ORACLE中Drop table cascade constraints之后果.

    当你要drop一个table时,如果删除table的动作会造成trigger或constraint产生矛盾,系统会出现错误警告的讯息而不会允许执行..一个极简单的例子,例如你有一个员工基本资料表,上面 ...

  10. Python:容器、迭代对象、迭代器、生成器及yield关键字

            在了解Python的数据结构时,容器(container).可迭代对象(iterable).迭代器(iterator).生成器(generator).列表/集合/字典推导式(list, ...