ASP.NET中数据库数据导入Excel并打印

ASP.NET中数据库数据导入Excel并打印,第1张

众所周知 WEB上的打印是比较困难的 常见的WEB上打印的方法大概有三种 直接利用IE的打印功能 一般来说 这种方法可以做些扩展 而不是单单的调用javascript:print()这样简单 比如 可以使用如下代码 <OBJECTid=WebBrowser classid=CLSID: F A D A B C FD A height= width= ></OBJECT><inputtype=button value=打印 onclick=document all WebBrowser ExecWB( )><inputtype=button value=直接打印 onclick=document all WebBrowser ExecWB( )><inputtype=button value=页面设置 onclick=document all WebBrowser ExecWB( )><inputtype=button value=打印预览 onclick=document all WebBrowser ExecWB( )>这种方法可以适用于简单的数据打印 对系统要求不高 但不足之处在于可以控制的能力比较差 比如处理分页等问题 利用水晶报表或其他第三方工具 如微软的Reporting service 水晶报表或其他第三方控件的打印 一般是导出到Excel WORD PDF等再进行打印的 效果比较好 但编程比较复杂 控制起来也不大方便 而且这些工具都是要收费的 将数据库的数据或要打印的内容导出到Excel Word中去打印 使用这种方法 可以在服务端或者客户端进行 在服务端使用的话 要求服务端要安装Word Excel 在客户端使用的话 要求客户端在IE的安全设置上有一定要求 使用这种方法 可适应性比较强 控制较好 本文将以在ASP NET中使用Excel为例子 介绍如何将数据导出到Excel的几种方法 首先 先介绍在服务端使用Excel的方法 要在服务器端使用Excel 必须要求服务器端安装Excel 并且要求一定的访问权限 比如 需要添加<identity impersonate= true />到nfig中 在本文中 要给予WEB目录可写的权限 接下来 使用VS NET 新建一个VB NET的工程 并添加引用 由于我们要使用的是Excel 所以添加一个关于的应用 这里添加的是Microsoft Excel Object Library 之后 添加的代码如下 Imports System Runtime InteropServices MarshalImports OfficePrivate Sub Page_Load(ByVal sender As System Object ByVal e As System EventArgs) Handles MyBase Load 以方式处理ExcelDim oExcel As New Excel ApplicationDim oBooks As Excel Workbooks oBook As Excel WorkbookDim oSheets As Excel Sheets oSheet As Excel WorksheetDim oCells As Excel RangeDim sFile As String sTemplate As String 定义一个datatableDim dt As DataTable = CType(Application Item( MyDataTable ) DataTable)sFile = Server MapPath(Request ApplicationPath) & \MyExcel xls 定义模版文件sTemplate = Server MapPath(Request ApplicationPath) & \MyTemplate xls oExcel Visible = FalseoExcel DisplayAlerts = False 定义一个新的工作簿oBooks = oExcel WorkbooksoBooks Open(Server MapPath(Request ApplicationPath) & \MyTemplate xls ) oBook = oBooks Item( )oSheets = oBook WorksheetsoSheet = CType(oSheets Item( ) Excel Worksheet) 命名该sheetoSheet Name = First Sheet oCells = oSheet Cells 调用dumpdata过程 将数据导入到Excel中去DumpData(dt oCells) 保存oSheet SaveAs(sFile)oBook Close() 退出Excel 并且释放调用的资源oExcel Quit()ReleaseComObject(oCells) : ReleaseComObject(oSheet)ReleaseComObject(oSheets) : ReleaseComObject(oBook)ReleaseComObject(oBooks) : ReleaseComObject(oExcel)oExcel = Nothing : oBooks = Nothing : oBook = NothingoSheets = Nothing : oSheet = Nothing : oCells = NothingSystem GC Collect()Response Redirect(sFile)End Sub 将DATATABLE的内容导出到Excel的单元格中去Private Function DumpData(ByVal dt As DataTable ByVal oCells As Excel Range) As StringDim dr As DataRow ary() As ObjectDim iRow As Integer iCol As Integer 输出列标题For iCol = To dt Columns Count oCells( iCol + ) = dt Columns(iCol) ToStringNext 将数据导出到相应的单元格For iRow = To dt Rows Count dr = dt Rows Item(iRow)ary = dr ItemArrayFor iCol = To UBound(ary)oCells(iRow + iCol + ) = ary(iCol) ToStringResponse Write(ary(iCol) ToString & vbTab)NextNextEnd FunctionEnd Class在上面的代码中 首先 先定义了一些关于Excel的对象 如application workbook sheets sheet等 这些都是在使用Excel的对象时 必不可少的 之后 我们事先先定义了一个Excel的模版文件 并且用Excel先打开这个模版文件 再调用一个自定义的过程dumpdata 在这个自定义的过程中 将datatable中的数据 逐一导入到Excel的单元格中去 读者自己可以慢慢体会下 上面的代码中 是如何将datatable中的数据导出到Excel中去的 程序运行后 可以在当前的工作目录下 生成名为myExcel xls的Excel文件 如下图大家可能觉得上面的代码比较复杂 因为上面对于对打印要求比较高的应用 是十分有效的 如果只是单单对数据进行导出 还可以使用简单的格式 比如使用以下的代码 Private Sub Page_Load(ByVal sender As System Object ByVal e As System EventArgs) Handles MyBase LoadDim dt As DataTable = CType(Application Item( MyDataTable ) DataTable)Response ContentType = application/ms Excel Response AddHeader( Content Disposition inline;filename=test xls )Response Write(ConvertDtToTDF(dt))End SubPrivate Function ConvertDtToTDF(ByVal dt As DataTable) As StringDim dr As DataRow ary() As Object i As IntegerDim iCol As Integer 输出列标题For iCol = To dt Columns Count Response Write(dt Columns(iCol) ToString & vbTab)NextResponse Write(vbCrLf) 输出数据For Each dr In dt Rowsary = dr ItemArrayFor i = To UBound(ary)Response Write(ary(i) ToString & vbTab)NextResponse Write(vbCrLf)NextEnd FunctionEnd Class在上面的代码中 首先将浏览器的输出类型设置为application/ms Excel 并设置Excel的输出类型是在浏览器中输出 默认的名字为test xls 之后 将调用自定义的过程 该自定义的过程将一个datatable里的数据以字符串流的形式输出 其中每个datatable里的数据之间以TAB制表符分隔 最后再输出到浏览器 输出效果如下图上面的这种方法 表现的形式比较简单 但也可以满足数据导出的基本要求 那如果要进一步修饰一下的话 要如何做呢?这里提供一个方法 可以将要导出的数据先绑定到datagrid 然后再打印该datagrid 这时就可以对要打印出来的datagrid进行格式化 设置datagrid的format等属性 代码如下 Protected Overrides Sub Render(ByVal writer As System Web UI HtmlTextWriter)Dim dt As DataTable = CType(Application Item( MyDataTable ) DataTable)Response ContentType = application/ms Excel Response AddHeader( Content Disposition inline;filename=test xls )DataGrid DataSource = dtDataGrid DataBind()DataGrid RenderControl(writer)End Sub打印出来的效果如下图 如果要转到Word里面打印的话 也同样可以用上面的方法 只需要将其中的代码改成 Response ContentType = application/ms word Response AddHeader( Content Disposition inline;filename=test doc )最后 来看一下 如何调用客户端的Excel进行打印 就是让客户一点击 打印 的按钮 就可以自动打开客户端的Excel 将要打印的内容导入 要实现这样的效果 必须要求客户端的IE浏览器设置中 在其中的 安全 本地Intranet 自定义级别中 将 下载未签名ACTIVX 中设置为启动或提示 代码如下 <script language= vbscript >Sub exportbutton_onclickDim sHTML oExcel oBookSHTML = em( DataGrid ) outerSet oExcel = CreateObject( Excel Application )Set oBook = oExcel Workbooks AddoBook HTMLProject HTMLProjectItems( Sheet ) Text = sHTMLoBook HTMLProject lishixinzhi/Article/program/net/201311/13741

国内外顶级的10个知识库管理系统(含开源、免费)

1PingCode

国内最推荐的一款企业级知识管理系统,简单易用,功能成熟,服务口碑好,2022年入选36氪发布的年度口碑企服产品榜单 TOP 36。

在软件开发团队的使用体验远超其他团队,但同样被非常多的市场、销售、项目经理等各种部门广泛用于团队知识库创建、项目文档的管理、文档的在线编辑协作、跨团队信息共享、集体讨论、帮助中心、产品介绍、开发文档、在线手册等制作。

PingCode 知识库工具主要功能包括但不限于:

多人实时在线协同编辑、信息实时保存同步、历史版本快速追溯;

文档支持共享、关注、评论、批注,可在消息/飞书等第三方账号收到提醒;

支持富文本编辑,支持插入、表格、思维导图、视频、Markdown、代码块、页面、附件等,支持模板创建、复用;

与研发项目管理、测试管理具体工作项深度关联,形成“需求-开发-测试-知识沉淀”管理闭环;

页面与工作项相互关联,页面支持插入工作项及工作状态,具体工作项可直接关联知识库或页面;

支持页面级的权限管控、以及水印、审计等安全能力;

之所以说 PingCode 在软件开发团队使用体验更佳是因为:PingCode 除了有知识管理子产品外,产品矩阵覆盖了研发全生命周期,具备目标管理、产品管理、项目管理(敏捷/kanban/瀑布)、测试管理、缺陷追踪、项目文档管理、效能度量等不同的子产品,客户可以按需购买。并且集成了github、gitlab、jinkens、企微、飞书等主流工具。

软件优点:

产品开箱即用,简单易上手,产品服务口碑好;

为25人以下团队免费提供基础版本;

国产化,支持信创、麒麟等;

支持私有部署、定制化以及Saas等购买方式;

国际信息安全体系认证和精细权限管控,安全有保障;

软件缺点:

不支持多语言;

无法满足百度百科这类知识库的搭建;

PingCode 官网

2Confluence

与 PingCode 一样是一个为软件开发团队打造的团队级知识库子产品。澳大利亚 Atlassiana 公司的产品,在国内算是比较知名的的企业知识管理与协同软件,可以用于构建企业wiki,具有成熟的功能,与 PingCode 知识库一样,能够直接关联研发管理的各环节。它强大的编辑和站点管理特征能够帮助团队成员之间共享信息、文档协作、集体讨论,信息推送。

工具优点:

文档的组织:在左侧目录栏,所见即所得地一次 *** 作完成目录结构与页面创建;

丰富的文档模板:专门针对技术团队的文档系统,所以具有各种丰富的模板;

关联研发过程:技术团队认为Confluence好用,确实是因为它针对技术团队特点,细致地解决了场景化问题;

非常丰富的插件:Confluence 集成了国外几乎所有主流的工具。

工具缺点:

随着人数的增加,管理变得复杂:在cofluenence中,每增加一个人,就必须手动添加,并配置数十个或数百个页面的许可;

免费版本的Confluence功能非常有限;

Confluence非常昂贵,例如100人的情况下,Confluence需要10万大洋/年,而国内的PingCodeWiki等同类工具只需要2-3万/年。

对国内用户不友好:Atlasian在2021年宣布停止国内本地版销售,逼用户上云,而国内使用云版又要**。

非技术团队使用高学习成本:Confluence可以用于营销和人力资源,但许多员工可能会被软件性质所需的技术知识所阻止;

国内不设公司,服务全部由代理商完成,而且价格不便宜(有的代理实施费用1万/天)。

官网: >

3MediaWiki

MediaWiki全球比较著名的开源wiki程序之一,最适合企业用来搭建百科、知识库查询等用途,企业内部使用可能会带来过高的成本。它运行于PHP+MySQL环境。MediaWiki从2002年2月25日被作为维基百科全书的系统软件,并有大量其他应用实例。仅从这点来看其功能的强大和成熟度毋庸置疑,所以也不过多介绍。

工具优点:

经受过重量级应用的考验,功能丰富却架设简单;

全世界最大的wiki项目维基百科是使用mediawiki的成功范例,数据量、访问量都超级庞大;

mediawiki的功能非常丰富,支持多语言版本,充分满足知识站点的需要;

运行环境要求很低,架设过程简洁,即使新手也可以迅速建立自己的站点

最大的wiki程序社区;

mediawiki是应用最广的wiki程序,数以万计的网站在使用它,很容易找到范例站点;

有大量的热心参与人员参与研究,资料多,容易找到互相交流的朋友;

持续开发,程序特性功能不断完善,保证未来的支持。

工具缺点:

强大的功能带来了非常高的学习成本;

除此以外,作为国外工具永远存在的风险都是禁用,俄罗斯就是很好的例子;

后台管理功能不是十分简单友善,仅通过简单的特殊页面完成这些功能,大部分系统设置是依靠配置文件而非直接界面设置;

一般环境下,虽然内置部分缓冲机制优化运行,mediawiki的运行速度相对其他wiki程序要差很多。mediawiki的目标是为维基媒体项目服务,很多华丽的性能特征要在高端设备环境(多服务器,多数据库,反向缓冲squid服务器阵列,大量额外的PHP缓冲引擎)中才能体现;

官网: >

4Gitbook

非常适合程序员用来做个人知识库的产品:GitBook是一个基于 Nodejs 的命令行工具,可使用  Github/Git 和  Markdown 来制作精美的电子书。美观、好用非常适合用来搭建官网上的知识库、帮助中心,他们自身的官网就是基于此搭建的(如图)。除此以外,也非常适合程序员用来做个人知识库,更好的一点是,gitbook支持直接发布在github博客系统上, 你可以把你的作品放在github上,别人可以来fork可以来帮你纠错,给你发pull request。除此以外GitBook 的第三方插件很丰富。

软件缺点:

虽然能制作出优美的官网文档,但在官网的SEO优化方面存在一定的问题;

近几年官方这样疏于维护的情况下,在2021年的今天,你要做好遇到很多坑的心理准备

官网: >

5语雀

更适合做个人笔记工具的知识库:语雀,是蚂蚁集团旗下的在线文档编辑与协同工具,2015年内部孵化的项目,2022年发布移动端。使用了“结构化知识库管理”,形式上类似书籍的目录。与其他产品可以随意建立文档不同,语雀上的每一篇文档必须属于某一个知识库,语雀希望通过这样的产品设计,来从源头上帮助用户建立起知识管理的意识,培养良好的知识管理习惯。除此以外,它能够满足“卡片笔记”这种方法论下的笔记记录方式。同时也具备一定的团队协作能力。

软件优点:

可以全局搜索:腾讯文档无法全局搜索,就无法找到一些文档。

语雀的插入功能丰富:特别是表格很好用,而印象笔记的表格真的不太好用。思维导图虽然不是很完美,但已经比很多文档笔记产品的思维导图都好用很多了,感受最深的就是可以拖动画布。

语雀的画板很好用:功能丰富,满足很多要求,这是其他笔记文档工具都不具备的

语雀的电脑端可以直接 *** 作文档:很多人说飞书好,但是我作为一个办公喜欢电脑端软件的的人来说,使用飞书电脑端 *** 作 *** 作,要跳转到浏览器,这样真的很不舒服。

软件缺点:

感觉语雀在用户体验上有一些反常识的设计, *** 作繁复,十分的不便利,比如:知乎文章《语雀的缺点和优点》中吐槽的;

更适合个人,团队协作能力较弱;

无法保持登录,经常需要重复登录;

官网: >

6wikijs

它是一款轻量级、功能强大的 wiki 开源项目,拥有评论、Markdown 编辑器、上传、标签、全局搜索、协同编辑、编辑历史、用户管理、谷歌分析等功能,重点是支持中文,而且支持高度自定义。用到的技术栈也不同于老旧的 wiki 系统,它采用了 Nodejs、PostgreSQL、Vuejs、Docker 等技术。

工具缺点:

访问加载速度较慢,可能是国外产品的关系;

虽然 wikijs 更新积极、提交频繁,但目前它还不支持自定义主题;

对中文搜索不友好,默认不支持中文搜索,需要采用 ES 但这样就不再轻量,或者采用 pg 插件让 pg 支持中文分词;

中文翻译覆盖率并不像官网展示的 100%,管理后台里还是有未翻译的地方;

项目地址: >

7DokuWiki

开源免费,轻量级百科系统不需要数据库即可运行,不少人搭建的wiki就是选用的这个,总的来说需要的功能都有,模板和插件很多,最大的问题是中文资料比较少,官网下载速度也有点慢。对了,下载的时候最好把“更新”插件一起下载这样后续更新就方便很多。

官网: >

开源下载地址: >

8Notion

Notion 是前些年在国内外都非常流行的管理工具,同时适用于个人以及团队协作使用(最近国内有个类似产品Flowus也比较火)。

由于其独特和灵活的使用方式,它很适合作为知识管理软件。和传统的笔记软件不同,Notion采用了模块化的设计,每个段落都是一个独立的区块,可以自由拖拽和布局,而且区块还可以设置为各种类型,包括标题、待办、列表、引用、、视频等,甚至还提供了第三方嵌入功能,你可以在其中加入网页片段、代码、思维导图、流程图等模块,创建内容丰富的文档。你可以认为它是一个工具集合,能够同时满足任务管理、进度管理、文档协作、知识库、项目计划等等。

软件缺点:

网络问题,受中国各地区复杂的网络情况影响,某些地区访问Notion及其缓慢,当内容中包含大量时,体验将变得很糟糕,只能自己寻找合适的手段解决;

丰富的功能必然的带来了较高的上手门槛,如果你只是想找一个单纯的知识库,那它可能并不适合;

离线模式不支持,Notion目前所有的内容基于在线web访问的方式,当浏览器缓存内容被清除后,意味着你每次访问页面都将需要进行新的载入,当你某个页面包含大量的数据时,等候时间将会很长,长达5-15秒(受网络速度影响),不过官方承诺将在后续版本支持离线模式。

中文搜索和分词及其糟糕,这个问题在2020年2月更新已得到解决,新的搜索机制对中文的兼容已非常良好,并且支持过滤。

没有标签体系,无法达到Onenote的标签快速查找的功能,Onenote可以为某一行文本设置某类标记,然后通过查找标记进行快速查找,在Notion不支持标记,只能通过自己的手动编辑某类特殊的文本,然后通过搜索功能勉强实现标记功能;

9docsify

免费开源,轻量级文档网站,界面简洁优雅,目前很多开源项目的文档都选用这个系统搭建,这里需要注意的是这个是单文档,不是那种大型wiki系统。

官网: >

10坚果云

坚果云一款提供云存储服务的工具,不同于树状结构的文档管理结构,它所提供的是文件夹类型的知识库管理方式。其优点就在于除了文档内容还能够对几乎所有类型的知识成果进行管理沉淀,比如特别适合视频、音频等知识管理。

坚果云分为面向个人和企业两种,可以帮助人们随时随地用任何设备快速访问文件,功能包括文件自动同步、文件共享、文件搜索、照片视频自动备份等,可应用于汽车、能源、金融、建筑等行业。

官网: >

1使用文件来记录,下次运行时读取 2使用数据库,可以考虑单机数据库或网络数据库 3如果数据量小,使用注册表

或者可以通过程序来保存:

set fs=createobject("scriptingfilesystemobject")'创建文件 *** 作对象

if fsfileexists("C:\atxt") then'如果C盘Atxt存在,那么读取其内容

set txt=fsopentextfile("C:\atxt",forreading,true)

set txtn=txtreadall

else'

set txtf=fscreatetextfile("c:\atxt",true)'创建C盘下的atxt

do'无限循环

wscriptsleep 1000'延时一秒

txtfwrite atext'写入文本框中内容

loop'循环结束

end if'判断结束

数据库中树形图的用法的用法你知道吗?下面我就跟你们详细介绍下数据库中树形图的用法的用法,希望对你们有用。

数据库中树形图的用法的用法如下:

树形图用于显示按照树形结构进行组织的数据,其用途比较广泛,如计算机中的文件系统(Windows中的资源管理器)、企业或公司的组成结构等。我们知道在Windows下VB、PB、Delphi等工具提供了一个功能很强的树型控件TreeView,利用Treeview控件可以方便地开发树形图。然而在网页上实现树形图就不那么容易了,现在在aspnet中利用微软提供的Internet Explorer WebControls它使得网页上的树形图开发与在Windows下一样的方便,一样的功能强大,甚至更灵活。

本文介绍用Internet Explorer WebControls开发树形图的方法,由于树形图结构较复杂,使用起来常不知如何下手。笔者结合最近刚为公司用ASPNET编写的应用程序管理器这一具体实例,详细阐述在ASPNET下如何将Internet Explorer WebControls的使用与数据库联系起来,实现数据分任意多层显示,方便地进行增加、修改、删除、移动 *** 作。笔者希望通过对该实例的阐述,达到抛砖引玉的效果,与各位同仁相互交流,共同进步。

Internet Explorer WebControls不在VSNET的标准Server Control中,要到微软的站点上下载,下载地址是:

>

可以多试一下常用密码,大多数人设置密码一般都是设置的常用密码。或者注意一下密码大小写,全半角关系。有的也可以使用电话或者是邮箱地址找回密码的功能。我用磁盘加锁专家软件也是忘记密码后联系客服解决的,收到密码提示后,发现也是自己常用的密码,可能是自己输入的时候不小心按到旁边键导致密码错误。所以还可以先把密码输入到记事本上,然后再复制粘贴进去。希望能帮到你

myBase Desktop要打开什么exe文件?可以打开mybase自己的数据库文件nyf!

如果你说是打开mybase Desktop软件,可以到安装目录下运行nyfeditexe

以上就是关于ASP.NET中数据库数据导入Excel并打印全部的内容,包括:ASP.NET中数据库数据导入Excel并打印、有什么好的知识管理软件、VB中怎样保存数据(保存在VB数据库里)等相关内容解答,如果想了解更多相关内容,可以关注我们,你们的支持是我们更新的动力!

欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/sjk/10623389.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-05-10
下一篇 2023-05-10

发表评论

登录后才能评论

评论列表(0条)

保存