当前位置: 首页 > news >正文

苏州网站建设公司科技城wordpress cms 下载

苏州网站建设公司科技城,wordpress cms 下载,wordpress注册页,南京设计网站使用 Microsoft.Office.Interop.Excel 虽然有速度慢的缺点#xff1b;但是作为自带引用#xff0c;兼容性最好#xff0c;而且是COM对象模型也很熟悉(Excel里直接录个宏#xff0c;很方便把VBA代码转成VB.NET)。所以处理几百上千条的小数据时还是很方便的。 而 Microsoft.…使用 Microsoft.Office.Interop.Excel 虽然有速度慢的缺点但是作为自带引用兼容性最好而且是COM对象模型也很熟悉(Excel里直接录个宏很方便把VBA代码转成VB.NET)。所以处理几百上千条的小数据时还是很方便的。 而 Microsoft.Office.Interop.Excel 用得不多的最大问题其实就是拿简单例子可以正确释放Excel做了大量操作后却发现在任务管理器中依然有多余Excel进程存在。 问题原因当然是COM对象映射到Interop交互对象之后.NET下的交互对象释放次序不符合COM对象预期导致不能正确释放。比如 Dim xlApp New Excel.Application() With {.Visible False} Dim xlWorkbooks As Excel.Workbooks xlApp.Workbooks Dim xlWorkbook As Excel.Workbook xlWorkbooks.Open(...)Dim value As Object xlWorkbook.Sheets(1).Cells(1,1).ValuexlWorkbook.Close() System.Runtime.InteropServices.Marshal.ReleaseComObject(xlWorkbook) xlWorkbook Nothing System.Runtime.InteropServices.Marshal.ReleaseComObject(xlWorkbooks) xlWorkbooks Nothing xlApp.Quit() System.Runtime.InteropServices.Marshal.ReleaseComObject(xlApp) xlApp Nothing System.GC.Collect()中间取value这行代码看起来很正常没有保留任何交互对象。其实在整个对象访问路径上隐式使用了以下交互对象要靠GC来释放(通常是延后的————即调用Close()时交互对象未释放、工作簿关闭不了之后的Quit()Excel不会退出) xlWorkbook.Sheets Excel.Sheets xlWorkbook.Sheets(1) Excel.Worksheet xlWorkbook.Sheets(1).Cells Excel.Range xlWorkbook.Sheets(1).Cells(1,1) Excel.Range要做到正确释放要把这些交互对象全部在Close()前释放。为了方便使用把 Excel.Application 和 Excel.Workbook 封装在类中用 IDisposable 接口确保释放。用类似下面的属性封装访问 Public Property CellValue(sheetIndex As Object, rowNo As Integer, colNo As Integer) As ObjectGetDim xlSheets As Excel.Sheets m_xlWorkbook.SheetsDim xlSheet As Excel.Worksheet xlSheets.Item(sheetIndex)Dim xlCells As Excel.Range xlSheet.CellsDim xlCell As Excel.Range xlCells.Item(rowNo, colNo)Dim value As Object xlCell.ValueSystem.Runtime.InteropServices.Marshal.ReleaseComObject(xlCell)System.Runtime.InteropServices.Marshal.ReleaseComObject(xlCells)System.Runtime.InteropServices.Marshal.ReleaseComObject(xlSheet)System.Runtime.InteropServices.Marshal.ReleaseComObject(xlSheets)System.GC.Collect(0)Return valueEnd GetSet(value As Object) 同理所有交互对象保留变量、释放End SetEnd Property上面的属性是通过行号、列号访问单元value如果需要通过A1格式访问单元又要定义属性如果需要访问单元text也要单独定义属性。 总之全部封装好后读写完Excel文件后就能正确释放不再有多余Excel进程残留。
http://www.dnsts.com.cn/news/10947.html

相关文章:

  • 宁波有没有开发网站的公司建设银行内部网站6
  • 网站备案需要的资料国外企业网络研究
  • 企业网站开发环境vs用户登录注册网站建设代码
  • 大良营销网站建设咨询wordpress免费主题cms
  • 邵阳建设网站哪家好合肥做网站需要多少钱
  • seo网站规划贵阳网站建设需要多少钱
  • 重庆建网站推广网校排名
  • 电商网站英文自己做简单的网站
  • 网站解析怎么设置做数学题挣钱的网站
  • 网站首页的动态视频怎么做的摄影作品集
  • 烟台公司建网站中建国际建设公司网站
  • 网站开发广告语大全怎么做网站后缀识别符号才不会变
  • 网站功能需求表整站优化推广
  • 淮安做网站找哪家好打开秒开小游戏
  • 太平洋保险网站十张优秀海报设计欣赏
  • 内蒙古有做购物网站的吗怎样做一个微信公众号
  • 制作静态网站wordpress中文主题模板下载
  • 网站被降权如何恢复杭州网站建设公司排名
  • 本地扬中网站建设宁波外贸推广网络营销
  • 常熟企业网站建设价格世界互联网乌镇峰会
  • 免费建设企业网站美团网站界面设计
  • 义乌营销型网站建设如何让百度能查到自己
  • 网站策划厂网站建设的内容策略
  • 网站迁移后 后台进不去公司网页网站建设
  • 网站内嵌地图东莞百姓网交友
  • 网络营销百科西宁seo网站
  • 设计师用的素材网站有哪些做ppt素材的网站有哪些
  • 公司注销后 网站备案吗游戏网站开发有限公司
  • 做网站做网站的公司山东临沂网站建设
  • 电商网站建设内容规划网站的建设包括那几个模块