Web DataGrid 导出Execl,速度很慢怎么办?

TrainYouTrainMe TrainYouTrainMe 墨衍会员 · AI 创作全网分发 墨衍智能分发 通过墨衍一键同步至各平台 可同步平台 CSDN微信公众号微博知乎掘金百家号博客园抖音小红书 你的文章也可以这样分发 墨衍会员 ¥399起/年,写一次发全网 我也要 + 加入社区
private void DataTableToExecl(System.Data.DataTable dt)
{
Excel.Application oExcel=new Excel.Application();
Excel.Workbooks oBooks;
Excel.Workbook oBook;
Excel.Sheets oSheets;
Excel.Worksheet oSheet;
Excel.Range oCells;
string sFile,sTemplate;

sFile=Server.MapPath(Request.ApplicationPath) + const_ExeclPrintFileName;
sTemplate=Server.MapPath(Request.ApplicationPath) + const_ExeclTemplateFileName ;
oExcel.DisplayAlerts=false;
oBooks=oExcel.Workbooks;
try
{
oBooks.Open(Server.MapPath(Request.ApplicationPath) + const_ExeclTemplateFileName ,Missing.Value,Missing.Value,Missing.Value,Missing.Value,Missing.Value,Missing.Value,Missing.Value,Missing.Value,Missing.Value,Missing.Value,Missing.Value,Missing.Value) ;
}
catch (Exception ez)
{
throw ez;
}
oBook=oBooks[1];
oSheets=oBook.Worksheets;
oSheet=(Excel.Worksheet) oSheets[1];

oSheet.Name="First Sheet";
oCells=oSheet.Cells;
DumpData(dt,oCells);

oSheet.SaveAs(sFile,Missing.Value,Missing.Value,Missing.Value,Missing.Value,Missing.Value,Missing.Value,Missing.Value,Missing.Value) ;

oBook.Close(Missing.Value,Missing.Value,Missing.Value);

oExcel.Quit();
Marshal.ReleaseComObject(oCells);
Marshal.ReleaseComObject(oSheet);
 
Marshal.ReleaseComObject(oSheets) ;
Marshal.ReleaseComObject(oBook);
Marshal.ReleaseComObject(oBooks);
Marshal.ReleaseComObject(oExcel);
 
oExcel = null;
oBooks = null;
oBook = null;
 
oSheets = null;
oSheet = null ;
oCells = null;
System.GC.Collect();
}


private void DumpData(System.Data.DataTable dt, Excel.Range oCells)
{
int iCol;
int iRow;
DataRow dr;
object[] ary;
for (iCol=0;iCol<dt.Columns.Count;iCol++)
{
oCells[2,iCol+1]=dt.Columns[iCol].ToString();
}

for (iRow=0 ;iRow<dt.Rows.Count;iRow++)
{
dr=dt.Rows[iRow];
ary=dr.ItemArray;
for(iCol=0 ;iCol<=ary.GetUpperBound(0);iCol++)
{
oCells[iRow+3,iCol+1]=ary[iCol].ToString();
}
}
}
...全文

相关推荐

移动应用畅销榜预测数据集10000款应用19特征

本数据集模拟移动应用商店的运营特征,包含10000款应用、19个字段、单CSV约937KB。字段覆盖应用类别(12类)、商业模式(免费、广告、内购、订阅、付费)、发布年份、内容分级、安装包大小、单次会话广告加载量、年更新次数、距上次更新天数、商店编辑推荐、买量支出、平均评分、次日与30日留存率,以及评分总数、累计下载量与营收等结果字段。提供top_grossing分类目标(营收前15%)与revenue_musd回归目标,结果字段独立分离,便于练习避免目标泄漏。数据完整无缺失、无需表关联,非线性效应与特征交互明显,调优后模型可超越朴素基线,兼具入门友好与研究深度,适合移动应用行业分析、商业化策略研究与机器学习教学。说明:本数据为Python生成的合成数据,仅反映生成规则,不含真实应用与个人信息。许可:CC0公有领域,可自由使用与二次分发。

licy__

预算约束下的备件库存:MATLAB中的边际分配与动态规划,最小化预期欠单.rar

预算约束下的备件库存:MATLAB中的边际分配与动态规划,最小化预期欠单.rar

天天Matlab科研工作室

对外一种类型,对内几副身形:Redis键空间管理、五大类型内部编码与场景选型解析代码包

想解决的就是这道“会用”和“用好”之间的缝隙。它回答四个具体问题: 一个 Redis 实例应该怎样启动、连接和关闭,哪些做法会在重启后丢数据; 管理键的那一组命令(EXISTS、DEL、EXPIRE、RENAME、KEYS、SCAN……)各自的代价是什么,哪些会把主线程卡住; 对外只有五种类型,对内却有十来种编码,它们何时切换、为何切换、切换后内存差多少; 每种类型最适合什么访问模式,常见场景(缓存、计数、限流、队列、标签、排行榜、延迟队列、分页)应该怎样写才不踩坑。

张彦峰ZYF

Delphi 13.2控件之sbridge-12.1.0-d7pro.exe

Delphi 13.2控件之sbridge_12.1.0_d7pro.exe

tjsoft

化学和超级电容混合储能双层容量配置平抑风电波动,采用RLMD分解风电功率,粒子群算法求解(Matlab代码实现)

内容概要:本资源聚焦于化学储能与超级电容器混合储能系统的双层容量配置方法,旨在平抑风电功率波动。通过采用鲁棒局部均值分解(RLMD)对风电功率进行多尺度分解,提取不同频率分量,并据此划分高频与低频功率响应任务,充分发挥超级电容器响应速度快和化学电池能量密度高的互补优势。在此基础上,构建以系统成本、寿命损耗与波动平抑效果为目标的多目标优化模型,并利用粒子群优化算法(PSO)求解最优容量配置方案。整个过程通过Matlab代码实现,提供了完整的仿真流程和技术细节,体现了信号分解、储能特性匹配与智能优化算法相结合的技术路线。; 适合人群:具备一定电力系统、新能源或自动化背景,熟悉Matlab编程,从事储能系统规划、风电并网或优化算法应用研究的研发人员与研究生。; 使用场景及目标:① 掌握RLMD等先进信号分解技术在风电功率处理中的应用;② 学习混合储能系统双层协调控制与容量配置的建模思路;③ 实践基于粒子群算法的多目标优化问题求解方法,并应用于实际工程场景。; 阅读建议:此资源以Matlab代码实现为核心,不仅展示算法流程,更注重从工程需求出发的系统设计与优化建模。学习者应结合代码运行、参数调整与结果分析,深入理解RLMD分解效果、储能分工机制及优化目标之间的权衡关系,从而掌握解决此类综合问题的方法论。

抬头望远方
评论 10
收藏 已收藏
分享
返回顶部
TrainYouTrainMe
.NET社区 62,274 成员 668,968 内容