string file = FileDialogHelper.SaveExcel(string.Format("{0}.xls", excelName));
if (!string.IsNullOrEmpty(file) && dt.Rows.Count > 0)
{
try
{
string error = "";
DataTableToExcel(dt, file, out error);
if (!string.IsNullOrEmpty(error))
{
MessageDxUtil.ShowError(string.Format("导出Excel出现错误:{0}", error));
}
else
{
if (MessageDxUtil.ShowYesNoAndTips("导出成功,是否打开文件?") == System.Windows.Forms.DialogResult.Yes)
{
System.Diagnostics.Process.Start(file);
}
}
}
catch (Exception ex)
{
LogTextHelper.Error(ex);
MessageDxUtil.ShowError(ex.Message);
}
}

  对ASPose的操作

 error = "";
Aspose.Cells.Workbook wb = new Aspose.Cells.Workbook(); try
{
if (datatable == null)
{
error = "DataTableToExcel:datatable 为空";
return false;
} //为单元格添加样式
Aspose.Cells.Style style = wb.Styles[wb.Styles.Add()];
//设置居中
style.HorizontalAlignment = Aspose.Cells.TextAlignmentType.Center;
//设置背景颜色
style.ForegroundColor = System.Drawing.Color.FromArgb(153, 204, 0);
//style.Pattern = BackgroundType.Solid;
style.Font.IsBold = true; //为单元格添加样式
Aspose.Cells.Style styleHeader = wb.Styles[wb.Styles.Add()];
//设置居中
styleHeader.HorizontalAlignment = Aspose.Cells.TextAlignmentType.Center;
//设置背景颜色
styleHeader.ForegroundColor = System.Drawing.Color.Gold;
styleHeader.Borders[Aspose.Cells.BorderType.LeftBorder].LineStyle = Aspose.Cells.CellBorderType.Medium; //应用边界线 左边界线
styleHeader.Borders[Aspose.Cells.BorderType.RightBorder].LineStyle = Aspose.Cells.CellBorderType.Medium; //应用边界线 右边界线
styleHeader.Borders[Aspose.Cells.BorderType.TopBorder].LineStyle = Aspose.Cells.CellBorderType.Medium; //应用边界线 上边界线
styleHeader.Borders[Aspose.Cells.BorderType.BottomBorder].LineStyle = Aspose.Cells.CellBorderType.Medium; //应用边界线 下边界线
styleHeader.Pattern = Aspose.Cells.BackgroundType.Solid;
styleHeader.Font.IsBold = true;
int rowIndex = 0;
//Aspose.Cells.Range range;
//Aspose.Cells.Cell cell;
//range = wb.Worksheets[0].Cells.CreateRange(0, 0, 2, 1);
//range.Merge();
//range.SetStyle(styleHeader);
//cell = range[0, 0];
//cell.PutValue("评估项目");
////range.SetStyle(styleHeader); //range = wb.Worksheets[0].Cells.CreateRange(0, 1, 2, 1);
//range.Merge();
//range.SetStyle(styleHeader);
//cell = range[0, 0];
//cell.PutValue("评估分值");
//range = wb.Worksheets[0].Cells.CreateRange(0, 2, 1, 3);
//range.Merge();
//range.SetStyle(styleHeader);
//cell = range[0, 0];
//cell.PutValue("评分结果(不适合项目调整前)");
//range = wb.Worksheets[0].Cells.CreateRange(1, 2, 1, 1);
//range.Merge();
//range.SetStyle(styleHeader);
//cell = range[0, 0];
//cell.PutValue("制度健全性");
//range = wb.Worksheets[0].Cells.CreateRange(1, 3, 1, 1);
//range.Merge();
//range.SetStyle(styleHeader);
//cell = range[0, 0];
//cell.PutValue("遵循有效性");
//range = wb.Worksheets[0].Cells.CreateRange(1, 4, 1, 1);
//range.Merge();
//range.SetStyle(styleHeader);
//cell = range[0, 0];
//cell.PutValue("合计");
//range = wb.Worksheets[0].Cells.CreateRange(0, 5, 2, 1);
//range.Merge();
//range.SetStyle(styleHeader);
//cell = range[0, 0];
//cell.PutValue("评分结果(不适合项目调整后)");
//range = wb.Worksheets[0].Cells.CreateRange(0, 6, 2, 1);
//range.Merge();
//range.SetStyle(styleHeader);
//cell = range[0, 0];
//cell.PutValue("权重");
//range = wb.Worksheets[0].Cells.CreateRange(0, 7, 2, 1);
//range.Merge();
//range.SetStyle(styleHeader);
//cell = range[0, 0];
//cell.PutValue("最终结果");
////Aspose.Cells.Range range1 = wb.Worksheets[0].Cells.CreateRange(0, 1, 2, 1);
////range1.Merge();
////Aspose.Cells.Range range2 = wb.Worksheets[0].Cells.CreateRange(0, 2, 1, 3);
////range2.Merge();
////Aspose.Cells.Range range3 = wb.Worksheets[0].Cells.CreateRange(0, 5, 2, 1);
////range3.Merge();
////Aspose.Cells.Range range4 = wb.Worksheets[0].Cells.CreateRange(0, 6, 2, 1);
////range4.Merge();
////Aspose.Cells.Range range5 = wb.Worksheets[0].Cells.CreateRange(0, 7, 2, 1);
////range5.Merge();
////wb.Worksheets[0].Cells[rowIndex, 0].PutValue("评估项目");
////wb.Worksheets[0].Cells[rowIndex, 0].SetStyle(styleHeader);
////wb.Worksheets[0].Cells[rowIndex, 1].PutValue("评估分值");
////wb.Worksheets[0].Cells[rowIndex, 1].SetStyle(styleHeader);
////wb.Worksheets[0].Cells[rowIndex, 2].PutValue("评分结果(不适合项目调整前)");
////wb.Worksheets[0].Cells[rowIndex, 2].SetStyle(styleHeader);
////wb.Worksheets[0].Cells[1, 2].PutValue("制度健全性");
////wb.Worksheets[0].Cells[1, 2].SetStyle(styleHeader);
////wb.Worksheets[0].Cells[1, 3].PutValue("遵循有效性");
////wb.Worksheets[0].Cells[1, 3].SetStyle(styleHeader);
////wb.Worksheets[0].Cells[1, 4].PutValue("合计");
////wb.Worksheets[0].Cells[1, 4].SetStyle(styleHeader);
////wb.Worksheets[0].Cells[rowIndex, 5].PutValue("评分结果(不适合项目调整后)");
////wb.Worksheets[0].Cells[rowIndex, 5].SetStyle(styleHeader);
////wb.Worksheets[0].Cells[rowIndex, 6].PutValue("权重");
////wb.Worksheets[0].Cells[rowIndex, 6].SetStyle(styleHeader);
////wb.Worksheets[0].Cells[rowIndex, 7].PutValue("最终结果");
////wb.Worksheets[0].Cells[rowIndex, 7].SetStyle(styleHeader); //styleHeader.ForegroundColor = System.Drawing.Color.LightCoral;
//wb.Worksheets[0].Cells[2, 0].PutValue("(1)");
//wb.Worksheets[0].Cells[2, 0].SetStyle(styleHeader);
//wb.Worksheets[0].Cells[2, 1].PutValue("(2)");
//wb.Worksheets[0].Cells[2, 1].SetStyle(styleHeader);
//wb.Worksheets[0].Cells[2, 2].PutValue("(3)");
//wb.Worksheets[0].Cells[2, 2].SetStyle(styleHeader);
//wb.Worksheets[0].Cells[2, 3].PutValue("(4)");
//wb.Worksheets[0].Cells[2, 3].SetStyle(styleHeader);
//wb.Worksheets[0].Cells[2, 4].PutValue("(5)=(3)+(4)");
//wb.Worksheets[0].Cells[2, 4].SetStyle(styleHeader);
//wb.Worksheets[0].Cells[2, 5].PutValue("(6)");
//wb.Worksheets[0].Cells[2, 5].SetStyle(styleHeader);
//wb.Worksheets[0].Cells[2, 6].PutValue("(7)");
//wb.Worksheets[0].Cells[2, 6].SetStyle(styleHeader);
//wb.Worksheets[0].Cells[2, 7].PutValue("(8)=(6)×(7)");
//wb.Worksheets[0].Cells[2, 7].SetStyle(styleHeader);
for (int i = 0; i < datatable.Columns.Count; i++)
{
DataColumn col = datatable.Columns[i];
string columnName = col.Caption ?? col.ColumnName;
wb.Worksheets[0].Cells[rowIndex, i].PutValue(columnName);
wb.Worksheets[0].Cells[rowIndex, i].SetStyle(style);
}
rowIndex++;
//rowIndex = 3; foreach (DataRow row in datatable.Rows)
{
for (int i = 0; i < datatable.Columns.Count; i++)
{ wb.Worksheets[0].Cells[rowIndex, i].PutValue(row[i].ToString());
wb.Worksheets[0].Cells[rowIndex, i].SetStyle(style);
}
rowIndex++;
}
string ExcelHeader = "PROJECTNAME,STANDARDSCORE,SYSINTEGRITY,FOLLOWEFFECTIVENESS,TOTAL,SCORERESULT,WEIGHT,ENDRESULT";
//foreach (DataRow row in datatable.Rows)
//{
// int i = 0;
// foreach (string col in ExcelHeader.Split(','))
// {
// wb.Worksheets[0].Cells[rowIndex, i].PutValue(row[col].ToString());
// wb.Worksheets[0].Cells[rowIndex, i].SetStyle(style);
// i++;
// }
// rowIndex++;
//}
//for (int k = 0; k < datatable.Columns.Count; k++)
//{
// wb.Worksheets[0].AutoFitColumn(k, 0, 150);
//}
wb.Worksheets[0].FreezePanes(1, 0, 1, datatable.Columns.Count);
wb.Save(filepath);
return true;
}
catch (Exception e)
{
error = error + " DataTableToExcel: " + e.Message;
return false;
}

  

ASPose导出excel简单操作的更多相关文章

  1. 对Aspose.Cells Excel文件操作的扩展

    工作中对Excel操作的需求很是常见,今天其他项目组的同事在进行Excel数据导入时,使用Aspose.Cells Excel 遇到了些问题. 刚好闲来不忙,回想自己用过的Excel文件操作,有NPO ...

  2. Perl读写Excel简单操作

    Perl读写Excel简单操作 使用模块 Spreadsheet::ParseExcel Spreadsheet::WriteExcel 读Excel #!/usr/bin/perl -w use s ...

  3. C# 使用自带Microsoft.Office.Interop.Excel简单操作Excel文件

    项目添加应用 Microsoft.Office.Interop.Excel.dll 文件 引用命名空间: using Excel = Microsoft.Office.Interop.Excel; 简 ...

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

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

  5. java导入导出excel常用操作小结及简单示例

    POI中常用设置EXCEL的操作小结: 操作excel如下 HSSFWorkbook wb = new HSSFWorkbook();  //创建一个webbook,对应一个Excel文件 HSSFS ...

  6. java解决poi导出excel文字水印,导出excel不可操作问题

    首先需求是用户提出导出excel数据需使用水印备注其用途: 其实就是在导出excel的同时带有自定义文字水印的导出. 那么我们首先想到的肯定是以一个什么样的思路去解决该问题,首先查找poi导出exce ...

  7. Aspose 导出excel小demo

    //转为pdf         private void CelltoPDF(string cellPath, string pdfPath)         {             Workbo ...

  8. aspose导出excel文件

    using Aspose.Cells; using System; using System.Collections.Generic; using System.Data; using System. ...

  9. python学习笔记(excel简单操作)

    现在的目标是设计一个接口自动化测试框架 用例写在excel里面 利用python自带的pyunit构建 之前已经安装好了处理excel的模块 这次简单的使用下 提前创建好excel文件 “testca ...

随机推荐

  1. .net 时间戳和日期互转

    1.时间戳转日期 public static DateTime IntToDateTime(int timestamp) {     ,,)).AddSeconds(timestamp); } 调用: ...

  2. jquery获取checkbox的值并post提交

    <!DOCTYPE html> <html> <head> <meta charset="utf-8"> <title> ...

  3. 切换到ZSH以后遇到的坑

    了解到ZSH的强大以后打算将自己目前使用的bash切换到ZSH.具体ZSH比bash强在那里就不多少了,网上的文章一搜一大把.个人主要是被ZSH强大的自动补全吸引过来的.虽然bash装了bash-co ...

  4. 细说.NET 中的多线程 (一 概念)

    为什么使用多线程 使用户界面能够随时相应用户输入 当某个应用程序在进行大量运算时候,为了保证应用程序能够随时相应客户的输入,这个时候我们往往需要让大量运算和相应用户输入这两个行为在不同的线程中进行. ...

  5. 跨站请求伪造CSRF

    CSRF是Cross Site Request Forgery的缩写,乍一看和XSS差不多的样子,但是其原理正好相反,XSS是利用合法用户获取其信息,而CSRF是伪造成合法用户发起请求. 在XSS危害 ...

  6. [Spring框架] Spring中的 ContextLoaderListener 实现原理.

    前言: 这是关于Spring的第三篇文章, 打算后续还会写入AOP 和Spring 事务管理相关的文章, 这么好的两个周末 都在看code了, 确实是有所收获, 现在就来记录一下. 在上一篇讲解Spr ...

  7. Jenkins的系统设置

    1.登录Jenkins进入以下界面: 2.点击 系统管理 3.点击 系统设置 (下图的系统设置是已经设置好的) 4.这里设置主要设置 Jenkins URL (这里我是测试的所以使用默认的)与 邮件的 ...

  8. 每天一个linux命令(12):more命令

    more命令,功能类似 cat ,cat命令是整个文件的内容从上到下显示在屏幕上. more会以一页一页的显示方便使用者逐页阅读,而最基本的指令就是按空白键(space)就往下一页显示,按 b 键就会 ...

  9. CSS3 transform 属性详解(skew, rotate, translate, scale)

    写这篇文章是因为在一个前端QQ群里,网友 "小豆豆" (应他要求要出现他的网名......) ,问skew的角度怎么算,因为他看了很多文章还是不能理解skew的原理.于是,我觉得有 ...

  10. Nodejs中的this

    以下内容都是关于在nodejs中的this而非javascript中的this,nodejs中的this和在浏览器中javascript中的this是不一样的. 在全局中的this console.l ...