AsposeExcel

 OWC 很吃资源,慢而又不好用, 建议用 AsposeExcel

以下是摘录
我们做项目的一个项目培训阶段的可行性技术研究:

1. 功能及使用
1.1. Aspose.Excel常用类
类名 描述
Excel 操作Excel文件的根对象
Worksheet;Worksheets 操作Excel文件的工作表
Cell;
CellFormat;
Cells 操作单元格和控制单元格的样式
Style;
Styles Excel对象的样式集合

1.2. Aspose.Excel使用介绍
1.2.1. 直接将DataTable中的数据输出
使用Cells的ImportDataTable方法将DataTable的数据直接填充到Excel文件的指定位置:
语法:public int ImportDataTable(DataTable,bool,int,byte);
//cells是Aspose.Excel.Cells 的实例
cells.ImportDataTable(DTable,true,0,0);

1.2.2. 直接将Excel文件数据输入到DataTable中
使用Cells的ExportDataTable方法将Excel文件数据导入到DataTable中:
语法:public DataTable ExportDataTable(   int firstRow,   byte firstColumn,   int maxRows,   int maxColumns);
//cells是Aspose.Excel.Cells 的实例
DataTable dt = cells.ExportDataTable(6, 1, 69, 4);

1.2.3. 使用Cell操作单元格
调用Cell对象的PutValue方法填充数据。
语法:public void PutValue(value);// value是可支持的类型变量
cells[int  Row, byte Column].PutValue(100);

1.2.4. 使用Excel的Replace方法
语法:Public void Replace(string,DataTable);
此方法不仅可以将指定字符串替换为变量,还可替换为DataTable;此方法可以方便的实现在Cells上的定位操作。
excel.Replace("&summary" , dataTable);
  
1.2.5. 使用Style样式Cell
实例化Style对象,设置属性,将此样式应用到选定的单元格。
//创建样式
int styleIndex = excel.Styles.Add();
Style styleTitle = excel.Styles[styleIndex];
styleTitle.Font.IsBold = true;
styleTitle.Font.IsItalic = true;
styleTitle.Font.Size =12;
styleTitle.Font.Color = Color.Red  ;
styleTitle.BackgroundColor = Color.BlueViolet ;

//选取范围,设置样式
Range range = cells.CreateRange(0, 0, 1,DTable.Columns.Count);
range.Style = styleTitle;

1.2.6. 保存数据到Excel文件
语法:public void Save(string,FileFormatType,out MemoryStream);
 public void Save(string,SaveType,FileFormatType,HttpResponse);
关于中文文件名:当输出的文件名为中文名时,在向Save 传递文件名时,使用HttpUtility.UrlEncode转换为URL编码的字符串,如果不转换,将出现文件名乱码。但是,此方法在用户以“直接打开”的方式查看Excel文件时,其Excel文件的标题依然时乱码。
excel.Save(HttpUtility.UrlEncode(“材料设备表.xls”), SaveType.OpenInBrowser , FileFormatType.Default, response);

 

2. 其他方案
直接将DataGrid的内容导出到Excel:(详细内容请见“研发中心BBS”)
Response.Clear();
Response.Buffer= true;
Response.ContentType = "application/vnd.ms-excel";
Response.Charset = "";
this.EnableViewState = false;

System.IO.StringWriter oStringWriter = new System.IO.StringWriter();
System.Web.UI.HtmlTextWriter oHtmlTextWriter = new System.Web.UI.HtmlTextWriter(oStringWriter);

dg.RenderControl(oHtmlTextWriter);

Response.Write(oStringWriter.ToString());

Response.End();
注:当允许翻页时会出错!解决方法是在输出之前设置不允许翻页并进行绑定。还有就是不想输出的列只要在dg属性设置隐藏就行了。

3. 结论及建议
 只是单纯输出DataGrid中的数据,建议使用RenderControl方法;
 输出需要个性化Excel或数据需要二次处理的,建议使用AsposeExcel;
 输出的数据需要多表查询时,建议使用AsposeExcel,并采用方法RePlace来多次填充数据。

  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值