ASPose导出excel简单操作
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简单操作的更多相关文章
- 对Aspose.Cells Excel文件操作的扩展
工作中对Excel操作的需求很是常见,今天其他项目组的同事在进行Excel数据导入时,使用Aspose.Cells Excel 遇到了些问题. 刚好闲来不忙,回想自己用过的Excel文件操作,有NPO ...
- Perl读写Excel简单操作
Perl读写Excel简单操作 使用模块 Spreadsheet::ParseExcel Spreadsheet::WriteExcel 读Excel #!/usr/bin/perl -w use s ...
- C# 使用自带Microsoft.Office.Interop.Excel简单操作Excel文件
项目添加应用 Microsoft.Office.Interop.Excel.dll 文件 引用命名空间: using Excel = Microsoft.Office.Interop.Excel; 简 ...
- C#使用Aspose.Cells导出Excel简单实现
首先,需要添加引用Aspose.Cells.dll,官网下载地址:http://downloads.aspose.com/cells/net 将DataTable导出Xlsx格式的文件下载(网页输出) ...
- java导入导出excel常用操作小结及简单示例
POI中常用设置EXCEL的操作小结: 操作excel如下 HSSFWorkbook wb = new HSSFWorkbook(); //创建一个webbook,对应一个Excel文件 HSSFS ...
- java解决poi导出excel文字水印,导出excel不可操作问题
首先需求是用户提出导出excel数据需使用水印备注其用途: 其实就是在导出excel的同时带有自定义文字水印的导出. 那么我们首先想到的肯定是以一个什么样的思路去解决该问题,首先查找poi导出exce ...
- Aspose 导出excel小demo
//转为pdf private void CelltoPDF(string cellPath, string pdfPath) { Workbo ...
- aspose导出excel文件
using Aspose.Cells; using System; using System.Collections.Generic; using System.Data; using System. ...
- python学习笔记(excel简单操作)
现在的目标是设计一个接口自动化测试框架 用例写在excel里面 利用python自带的pyunit构建 之前已经安装好了处理excel的模块 这次简单的使用下 提前创建好excel文件 “testca ...
随机推荐
- [nRF51822] 5、 霸屏了——详解nRF51 SDK中的GPIOTE(从GPIO电平变化到产生中断事件的流程详解)
:由于在大多数情况下GPIO的状态变化都会触发应用程序执行一些动作.为了方便nRF51官方把该流程封装成了GPIOTE,全称:The GPIO Tasks and Events (GPIOTE) . ...
- Android 数据传递(一) Activity之间的数据传递
bundle Google Bundle类说明 Bundle类是一个key-value对.Activity之间的数据通信可以通过bundle类来实现数据的存储.即将数据放入bundle里面,将Bund ...
- eclipse启动不了
因为eclipse运行变得非常慢,我想再次增加一下eclipse的最大内存,以期待使eclipse能够快速的响应. 参照某些资料,我也不知道什么时候改成了这样: -vmargs-Xms512m-Xmx ...
- Nginx下WordPress的Rewrite
最近接触WP Super Cache,该插件要求固定链接必须是重写的,故用到Rewrite. 我的是这样配置的: /usr/local/nginx/conf/rewrite/wordpress.con ...
- QQ表情动图,增加写博客的乐趣
QQ表情动图,增加写博客的乐趣 body{margin:0px;}
- redis + 主从 + 持久化 + 分片 + 集群 + spring集成
Redis是一个基于内存的数据库,其不仅读写速度快,每秒可以执行大约110000的写操作,81000的读取操作,而且其支持存储字符串,哈希结构,链表,集合丰富的数据类型.所以得到很多开发者的青睐.加之 ...
- 真正的mybatis_redis二级缓存
网上流传的代码缓存失效存在严重问题. 思路....以后再细说 目前的方案还不够完美,失效力度控制不够细. 主要代码 import java.io.BufferedReader; import java ...
- .NET面试题解析(02)-拆箱与装箱
系列文章目录地址: .NET面试题解析(00)-开篇来谈谈面试 & 系列文章索引 装箱和拆箱几乎是所有面试题中必考之一,看上去简单,就往往容易被忽视.其实它一点都不简单的,一个简单的问题也 ...
- 最近修改的几个小bug
最近修改的几个 bug,问题不大,查找起来却几番周折,汇总起来如下. 1.诡异电话号码 客服邮件反馈,很多用户服务热线变成了“0371-45875487”.看到这问题的第一反映是可能因为程序某个地方有 ...
- (转)sql的join图解
假设我们有两张表,Table A是左边的表,Table B是右边的表. 其各有四条记录,其中有两条记录是相同的,如下所示: 1 id name id name 2 -- ---- ...