中易网

c#实现的代码

答案:2  悬赏:80  
解决时间 2021-01-15 03:09
  • 提问者网友:人生佛魔见
  • 2021-01-14 06:52
c#实现的代码
最佳答案
  • 二级知识专家网友:雪起风沙痕
  • 2021-01-14 07:37
几种方案都可以实现:
1) 调用office插件,该条件前替要求安装office,通过调用Application的方式生成文件写入数据。缺点是Application调用性能较差——加载Application至少20s!
2) 调用windows Excel扩展库,在.net扩展类库中存在相应扩展库。这个是我们.net的最常用的开发方式,缺点是扩展库相当复杂,每个成员方法调用的参数都是数十计的,学习或使用上都有一定的难度——在.net实现命名参数之前就是一个恶梦!。可生成标准的ms定义的excel格式(包含2003以前的格式)。
3)第三方插件,也不是第三方的SDK,最常的是NPOI,由Java项目转换而来的,使用上没有Windows Excel扩展库那么复杂了,但是性能较低,比windows Excel扩展库还低!而且对于多表格操作上性能极其低下,只能以非常耗性能的单个单元格处理。
4)专用SDK,好消息就是在2003以后的版本中,Microsoft的Excel格式换用标准的格式(ISO29500,EMC376)。也就是说Excel使用了标准的打包格式(其实就是一堆xml文件打包)。目前最常用的是Openxml 2.5版本,性能较高,是通过内存xml的方案,可以成组操作等相关内容,支持windows excel中的所有功能!目前还不是开发主流——原因是对于这个缺少培训,很多程序员根本不会用!相关资料因内只有基本的使用,除了一些demo code之外,很少有项目的Project开源代码供参考。另一个缺点是,只支持标准的openxml,不支持2003以前的版本。
5)杂项开发,非规则excel!这种情况其实问题很大,在以前项目较小时使用,我也曾用过直接编写一个table为主的Html代码,直接保存成excel文件的后辍名!基本上大部分的时候用Microsoft Excel打开后可以识别,但在excel中修改重保存后无法再利用!换句话来说,这根本不是excel,只是一个html标签而已,恰能被excel识别。这个除了辍名是excel的后轰名之外,跟excel其实没有任何关系的!
以上五种方法,我都在项目中使用过,但我的推荐是openxml2.5,可以直接从microsoft上下载。除不能支持2003以前的版本外,无论性能开发方案都是最优的选择!当然,如果你有时间,自己看一下EMAC374 part 2-4或ISO 29500标准,自己直接开发也行!其实就是一堆xml打包而已,其实你可以把xlsx文件的后辍名改成.zip,然后用解压软件软件解压了解一下具体的内容——同时参考标准文档。如果时间充裕,那么直接按标准写一个SDK也无所谓的!openxml 2.5就是按该标准实现的,几乎实现了excel application所有功能!
全部回答
  • 1楼网友:野慌
  • 2021-01-14 08:11
参考NPOI的示例,很容易就可以实现。
我要举报
如以上回答内容为低俗、色情、不良、暴力、侵权、涉及违法等信息,可以点下面链接进行举报!
点此我要举报以上问答信息!
大家都在看
推荐信息