手机版

Asp.net更简单的操作Excel的实现代码

时间:2021-10-17 来源:互联网 编辑:宝哥软件园 浏览:

1.操作Excel 的动态链接库。

2.建立操作动态链接库的共通类,方便调用(ExcelHelper)具体如下:复制代码代码如下:使用系统;使用系统。数据;使用系统。配置;使用系统Linq .使用系统网络.使用系统。网络安全;使用系统网络。用户界面使用系统网络。UI。HtmlControls使用系统。网络控件;使用系统。网页组件;使用系统Xml。查询表达式使用系统IO;使用系统。反思;使用系统。诊断;使用系统。收藏品;///摘要///ExcelHelper的摘要说明////摘要公共类ExcelHelper {私有字符串reportModelPath=null私有字符串输出文件路径=空缺少私有对象=缺少。价值;Excel .应用appExcel .工作簿工作簿;Excel .工作表工作表;Excel .范围范围;///摘要///获取或设置报表模板路径////汇总公共字符串ReportModelPath { get { return ReportModelPath;}设置{ reportModelPath=value} } ///摘要///获取或设置输出路径////摘要公共字符串OutPutFilePath { get { return Outputfilepath;}设置{ outPutFilePath=value } } public ExcelHelper(){//////todo :在此处添加构造函数逻辑//} ///摘要///带参ExcelHelper构造函数////summary////param name=' reportModelPath '报表模板路径/param///param name=' OutPutfilepath '输出路径/param public ExcelHelper(字符串reportModelPath,字符串outPutFilePath) { //路径验证if (null==reportModelPath ||(' ').Equals(reportModelPath))引发新的异常('报表模板路径不能为空!');if (null==outPutFilePath ||(' ').等于(输出文件路径))引发新异常('输出路径不能为空!');if(!文件。存在(报告模型路径))引发新异常('报表模板路径不存在!');//设置路径值这个。报告模型路径=报告模型路径;这个OutPutFilePath=OutPutFilePath//创建一个应用程序对象app=新Excel .应用程序类();//打开模板文件,获取练习本对象workBook=app .工作簿。打开(报告模型路径,缺失,缺失,缺失,缺失,缺失,缺失,缺失,缺失,缺失,缺失,缺失);//得到工作表对象工作表=工作簿。将_项目(1)设为Excel .工作表;} ///摘要///给单元格设值////summary////param name='行索引'行索引/param ///param name='colIndex '列索引/param ///param name='content '填充的内容/param public void SetCells(int行索引,int colIndex,对象内容){ if (null!=内容){内容=内容. ToString();} else { content=string .空的;}请尝试{工作表。单元格[行索引,列索引]=内容;} catch { GC();引发新的异常(""向单元格[' rowIndex ',' colIndex ']写数据出错!');} } ///摘要///保存文件////摘要公共void save file(){ try { WorkBox .另存为(输出文件路径,缺失,缺失,缺失,缺失,缺失,缺失,Excel .XlSaveAsAccessMode.xlExclusive,缺失,缺失,缺失,缺失);}捕获{抛出新异常('保存至文件失败!');}最后{ Dispose();} } ///摘要///垃圾回收处理////summary protected void GC(){ if(null!=app){ int generation=0;系统。运行时。interopservices。法警。release com object(app);世代=系统气相色谱。GetGeneration(app);系统。收集(生成);app=nullmissing=null} } ///摘要///释放资源////summary protected void Dispose(){ workBook .Close(null,null,null);应用程序.工作簿。关闭();应用程序.退出();if (null!=工作表){系统。运行时。InterOpSerVices。法警。发布ComObject(工作表);工作表=null} if(WORk!=null){ 0系统。运行时。InterOpSerVices。法警。发布ComObject(工作簿);workBook=null} if (app!=null){ int generation=0;系统。运行时。interopservices。法警。release com object(app);世代=系统气相色谱。GetGeneration(app);系统。收集(生成);app=nullmissing=null} } }通过ExcelHelper类提供的SetCells()和保存文件()方法可以给超过单元格赋值并保存到临时文件夹内。仅供参考。

3.调用因为这里需要用到导出模板,所以需要先建立模板。具体如下: 复制代码代码如下: ///summary ///导出数据////summary protected void Export _ Data(){ int ii=0;//取得报表模板文件路径string reportModelPath=HttpContext .当前。服务器。MapPath('ReportModel/导出订单模板. CSV’);//导出报表文件名文件名=字符串。格式(' {0}-{1}{2})。csv ','导出订单明细,DateTime .现在。ToString(' yymmdd '),GetRndNum(3));//导出文件路径字符串OutputFilePath=HttpContext .当前服务器映射路径(“温度下降/”文件名);//创建超过对象ExcelHelper excel=new ExcelHelper(reportModelPath,outPutFilePath);SqlDataReader SDR=Get _ Data();同时(特别提款权.read()){ ii;卓越.SetCells(1 ii,1,ii);卓越.SetCells(1 ii,2,SDR[' C _ Name ']);卓越.SetCells(1 ii,3,SDR[' C _ Mtel ']);卓越.SetCells(1 ii,4,SDR[' C _ Tel ']);卓越.SetCells(1 ii,5,SDR[' C _省份']);卓越.SetCells(1 ii,6,SDR[' C _ Address ']);卓越.SetCells(1 ii,7,SDR[' C _ post code ']);} sdr .close();卓越.保存文件();} 关于导出就简单写到这,另外下一节讲介绍如何通过这个类库上传超过文件。作者:威尔潘

版权声明:Asp.net更简单的操作Excel的实现代码是由宝哥软件园云端程序自动收集整理而来。如果本文侵犯了你的权益,请联系本站底部QQ或者邮箱删除。