在.NET中用excel导出(概要)

首先要在项目->添加引用->COM中添加Microsoft Office Web Components ,然后定义一个OWC.SpreadsheetClass 如:Dim xlsheet As New OWC.SpreadsheetClass 然后就可以向sheet中添加数据了,使用xlsheet.Cells(2, 2) = "表格填充内容" 格式添加数据,使用xlsheet.Range("B3:F3") 设置单元格的样式。
 最后用xlsheet.ActiveSheet.Export(Path, OWC.SheetExportActionEnum.ssExportActionNone) 的方式将excel文件保存在硬盘上。
 这种方法优点是无需系统权限分配,缺点是对于单元格的格式属性设置不够丰富,某些属性无法设置或者是设置比较麻烦。
2.用Excel Application
 用这种方法之前首先要给aspnet用户设置权限,否则程序会不能执行的。设置权限的过程如下:
 在运行处运行“dcomcnfg.exe”启动“分布式COM配置属性”
 在应用程序列表框中双击“Microsoft Excel 应用程序”
 选择“安全性”标签
 选择“使用自定义访问权限”单选框,点击“编辑”按钮
 添加本地“ASPNET”用户,权限为“允许访问”
 在“安全性”标签中选择“使用自定义启动权限”单选框,点击“编辑”按钮
 添加本地“ASPNET”用户,权限为“允许访问”
 以上工作在需要执行excel导出的服务器上进行一次即可。
 以后在每个工程中要选择“项目->添加引用中选择“COM”标签,添加“Microsoft Excel x.x Object Library”到 项目中,以后就可以执行excel导出操作了。
 在需要导出的时候首先定义一下excel application、excel Workbooks、excel Worksheets变量:
Dim excelApp As Excel.Application
Dim excelBook As Excel.Workbook
Dim excelSheet As Excel.Worksheet
excelApp = New Excel.Application
excelBook = excelApp.Workbooks.Add
excelSheet = excelBook.Worksheets(1)
之后就可以将数据放入excel Sheet中了,而且可以方便的设置单元格的各个属性参数。比如,设置行高可以用excelSheet.Rows(intRowIndex).RowHeight = dblRowHeight
用这种方法可以实现几乎全部的excel功能,如果对于某个功能不知道用excel application如何实现,可以在excel中通过“记录宏-执行操作-查看宏代码”的方法得到实现该功能所用到的属性和方法。
最后要将数据保存到硬盘上,只需用excelBook.SaveAs(FileName)方法即可。
这种方法的优点是功能强大,可以实现几乎所有的excel功能。缺点是需要权限配置,而且运行时间比较长,占用资源比较高,结束后可能在系统中有残留的EXCEL进程。
3.直接存为文本文件
直接将数据按照html表格的格式存为文本文件,扩展名改成xls就可以用excel打开,或者按照Office XP之后支持的xml格式,这种格式所能实现的功能同样强大,缺点就是需要知道各种功能或者excel单元格格式的xml表达方法,工作量比较大。
这种方法优点是不需要权限配置(只需能够向硬盘写文件的权限就可以),执行速度快。缺点是需要知道大量的excel格式的xml或者html表达方式,前期准备工作量大。  首先要在项目->添加引用->COM中添加Microsoft Office Web Components ,然后定义一个OWC.SpreadsheetClass 如:Dim xlsheet As New OWC.SpreadsheetClass 然后就可以向sheet中添加数据了,使用xlsheet.Cells(2, 2) = "表格填充内容" 格式添加数据,使用xlsheet.Range("B3:F3") 设置单元格的样式。
 最后用xlsheet.ActiveSheet.Export(Path, OWC.SheetExportActionEnum.ssExportActionNone) 的方式将excel文件保存在硬盘上。
 这种方法优点是无需系统权限分配,缺点是对于单元格的格式属性设置不够丰富,某些属性无法设置或者是设置比较麻烦。
2.用Excel Application
 用这种方法之前首先要给aspnet用户设置权限,否则程序会不能执行的。设置权限的过程如下:
 在运行处运行“dcomcnfg.exe”启动“分布式COM配置属性”
 在应用程序列表框中双击“Microsoft Excel 应用程序”
 选择“安全性”标签
 选择“使用自定义访问权限”单选框,点击“编辑”按钮
 添加本地“ASPNET”用户,权限为“允许访问”
 在“安全性”标签中选择“使用自定义启动权限”单选框,点击“编辑”按钮
 添加本地“ASPNET”用户,权限为“允许访问”
 以上工作在需要执行excel导出的服务器上进行一次即可。
 以后在每个工程中要选择“项目->添加引用中选择“COM”标签,添加“Microsoft Excel x.x Object Library”到 项目中,以后就可以执行excel导出操作了。
 在需要导出的时候首先定义一下excel application、excel Workbooks、excel Worksheets变量:
Dim excelApp As Excel.Application
Dim excelBook As Excel.Workbook
Dim excelSheet As Excel.Worksheet
excelApp = New Excel.Application
excelBook = excelApp.Workbooks.Add
excelSheet = excelBook.Worksheets(1)
之后就可以将数据放入excel Sheet中了,而且可以方便的设置单元格的各个属性参数。比如,设置行高可以用excelSheet.Rows(intRowIndex).RowHeight = dblRowHeight
用这种方法可以实现几乎全部的excel功能,如果对于某个功能不知道用excel application如何实现,可以在excel中通过“记录宏-执行操作-查看宏代码”的方法得到实现该功能所用到的属性和方法。
最后要将数据保存到硬盘上,只需用excelBook.SaveAs(FileName)方法即可。
这种方法的优点是功能强大,可以实现几乎所有的excel功能。缺点是需要权限配置,而且运行时间比较长,占用资源比较高,结束后可能在系统中有残留的EXCEL进程。
3.直接存为文本文件
直接将数据按照html表格的格式存为文本文件,扩展名改成xls就可以用excel打开,或者按照Office XP之后支持的xml格式,这种格式所能实现的功能同样强大,缺点就是需要知道各种功能或者excel单元格格式的xml表达方法,工作量比较大。
这种方法优点是不需要权限配置(只需能够向硬盘写文件的权限就可以),执行速度快。缺点是需要知道大量的excel格式的xml或者html表达方式,前期准备工作量大。

转载于:https://www.cnblogs.com/shf/archive/2007/12/14/994700.html

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/464013.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

我愿为这二极管奉献我的一生

简 介: 利用二极管完成对信号的整流,求取绝对值等具有很多的应用。然而在小信号下,二极管的前向导通电压以及相应的杂散电容会对信号整流带来严重的影响。本文从“马场清太郎”所著的“运算放大器应用电路设计”中摘取了一些典型应用电路&…

61条Java面向对象设计的经验原则

1)所有数据都应该隐藏在所在的类的内部。 (2)类的使用者必须依赖类的共有接口,但类不能依赖它的使用者。 (3)尽量减少类的协议中的消息。 (4)实现所有类都理解的最基本公…

问题?

1、java类空参构造器的作用? 构建对象时候所用的空参构造函数 2、static代码块与非static代码块的区别: 静态代码块,在虚拟机加载类的时候就会加载执行,而且只执行一次;非静态代码块,在创建对象的时候&…

【毕业设计】履带四足复合机器人

1.项目简介本项目中,履足式复合机器人拥有两种行进模式:四足行进模式、履带行进模式,应对不同场景及地形时能够切换形态。四足形态下整体总共拥有8个自由度DOF,单腿各具备2个自由度DOF,足端结构融入了履带机构&#xf…

UDT源码剖析(六):UDT::socket()过程代码注释

调用路线 UDT::socket()->CUDT::socket()->CUDTUnited::newSocket() 1 UDTSOCKET CUDT::socket(int af, int type, int) 2 { 3 // 如果垃圾收集没启动,那么这里自动调用startup 4 // 所以手动调用startup其实不是必须的,但是为了接受作者的风…

Exam化的软件项目管理

最近所做的工作是做一个公司产品的前期原型设计,这期间主要采用的是敏捷的Scrum开发方式,在一般的解释中认为每一个“疾跑”过程中,最主要的是交付一个可用的产品,Scrum在处理时间、资源和功能3点的平衡中,唯一可以牺牲…

Java程序员从笨鸟到菜鸟之(五)java开发常用类(包装,数字处理集合等)(下)...

本文来自:曹胜欢博客专栏。转载请注明出处:http://blog.csdn.net/csh624366188 写在前面:由于前天项目老师建设局的项目快到验收阶段,所以,前天晚上通宵,昨天睡了大半天,下午我们宿舍聚会&#…

c#: 任务栏进度显示(TaskbarManager)

Win7及以上系统支持任务栏进度条,为有进度类应用显示进度于任务栏,甚为方便。 以c#之WinForm实现其,大多采用Windows API Code Pack这个方案,加多引用,比较繁琐,而我总也打不开了其页面。 鄙人不喜欢多引用…

今天,过了27年后,IE浏览器停用了

前言随着Windows的官宣,ie浏览器将于6月16日正式退役。https://www.microsoft.com/zh-cn/download/internet-explorer.aspx那个曾几何时的浏览器之王,经历一次又一次操作系统的迭代,直至新兴浏览器的出现后沦为浏览器鄙视链的最后一层&#x…

设计模式 之 创建者

很久没写设计模式学习笔记了,今天无聊,随便把以前看的模式的都写下.先把代码帖上来吧.这个模式,是模拟 西山居的一款游戏,剑侠情缘 来写的,呵呵,当然,该游戏到底是怎么设计的,我是不知道,只是作为一个例子放到这个地方.using System; using System.Colle…

svn添加用户.sh

#!/bin/bash FLASH_SVNPATH/xx_new_flash/conf DESIGN_SVNPATH/xx_new_design/conf JAVA_SVNPATH/xx_new_java/conf echo "请选择 java flash meishucehua " read -p "请选择部门员工 java,flash,meishucehua " bumen case $bumen in flash) …

spring boot+mybatis+generator生成domain大小写问题

之前遇到一个问题&#xff0c;用generator生成数据库对应的domain&#xff0c;以前都是好好的&#xff0c;那天突然生成的domain都是小写的&#xff0c;因为我数据库里是大写的&#xff0c;后来找到解决办法&#xff0c; <table tableName"material_pile" domainO…

boost库学习入门篇

学习及使用Boost库已经有一段时间了&#xff0c;Boost为我的日常开发中带来了极大的方便&#xff0c;也使得我越来越依赖于boost库了。但boost功能太多&#xff0c;每次使用还是得翻看以前的 资料&#xff0c;所以为了以后可以更方便的使用&#xff0c;在此对常用的功能作一个…

开源 STM32 USB-CAN项目

照理来说&#xff0c;USB-CAN这种东西应该已经被做的烂大街的工具&#xff0c;国内居然没有一个拿得出手的开源方案。某立功和PCAN动辄2000的价格也是离谱。淘宝上各种虚拟串口方案、替换dll兼容某立功软件的各种方案....价格都倒是便宜&#xff0c;性能和可靠性嘛.......就不多…

Windows Workflow Foundation - [介绍及相关资源]

Workflow Foundation是能使你在Windows平台上快速构建工作流应用程序的编程模型&#xff0c;引擎以及工具。WF支持各种各样的工作流场景&#xff1a;包括以用户界面为中心的页面流程&#xff0c;文档为中心的工作流程&#xff0c;业务规则驱动的业务流程等。 如果你使用的是VS2…

Go语言web框架 gin

Go语言web框架 GIN gin是go语言环境下的一个web框架, 它类似于Martini, 官方声称它比Martini有更好的性能, 比Martini快40倍, Ohhhh….看着不错的样子, 所以就想记录一下gin的学习. gin的github代码在这里: gin源码. gin的效率获得如此突飞猛进, 得益于另一个开源项目httproute…

8位ADC是256还是255?

昨天的文章发了之后&#xff0c;有朋友找到我&#xff0c;给我讨论了很多关于ADC细节。晚上给个朋友在51上调ADC0808芯片有一个朋友是做硬件的&#xff0c;他有从事过专业仪器设备&#xff0c;常年有使用ADC的经验&#xff0c;他给我的观点是&#xff0c;8位ADC对应的就是256。…

WCF中使用HttpSession

在WCF中不能使用HttpSession&#xff0c;即使Host是IIS也不可以&#xff0c;这就造成在WEB应用中集成WCF不太方便&#xff0c;其实可以通过配置搞定&#xff0c;关键在于三点&#xff1a;Host、契约类、Client端。 Host上要求Web.config中有定义&#xff1a; <system.servic…

boost库在ubuntu下的安装

系统是ubuntu虚拟机&#xff0c;安装的是boost_1_60_0。 &#xff08;1&#xff09;首先去下载最新的boost代码包&#xff0c;网址www.boost.org。 &#xff08;2&#xff09;进入到自己的目录&#xff0c;解压&#xff1a; bzip2 -d boost_1_60_0.tar.bz2 tar xvf boost_1_…

Google的投票站点在用Asp.net

https://survey.google.com/wix/p0621608.aspx https://survey.google.com/aaaaaaaaaaaaaa.axd https://survey.google.com/wix/xxxxxxxxxxxxxxxxxxxxx.ashx Server Microsoft-IIS/6.0X-AspNet-Version 2.0.50727 X-Powered-By ASP.NET 转载于:https://ww…