如何将devexpress中文教程的报表导出为Word 或者 Excel格式

Access俱乐部
Access入门经典视频《运用Access实现降本增效》(免费)[] | 免费《Access五节必修课》[]
?&&&&?&&&&?&&&&?&&&&
您的位置:  > >
[access报表]调用word excel 创建完美报表
来源:&&点击数:10137&&评论数:2 &|&&|&
时 间: 10:20:21
作 者:&&&ID:54&&城市:东营
摘 要:调用word&excel&创建完美报表
&&&&&&&&&&&&&&&&&&&&&&&& 调用word excel 创建完美报表
&&&& Access作为Microsoft Office办公软件包中的一部分,以其友好的操作界面和卓越的数据管理能力而日益成为中小型管理信息系统的理想开发环境,在各行各业得到了广泛的应用。但在应用中我们发现,Access在报表输出上还存在一些不足:尽管它可以很好地处理一些基于页面的报表,但对一些复杂报表或一些特殊报表的处理能力却很难令人满意,这主要是由于Access系统附带的报表设计器太过直观,缺少了程序设计和文字处理所需的必要的灵活性。而Word作为Microsoft Office家族中的重要成员&&字处理器,其强大的文字处理功能正好可以弥补Access在报表方面的不足。这就使得我们自然而然地想到将Access与Word有机地结合起来,利用Access的数据处理功能进行数据的录入、查询、存储,而利用Word的字处理功能进行各种报表的打印输出。幸好,微软在设计Office的时候就已经为我们提供了一种在诸如Access、Word、Excel等应用程序之间通信的机制,使得这种想法得以实现。
一、基本原理
&&& 对于一些复杂的或有特殊要求的查询,用ADO(ActiveX数据对象)来处理要比用Access本身提供的查询管理器更灵活一些。所以我们的基本思路是:用ADO执行一条或多条特定的SQL查询,生成我们所需要的一个或多个Recordset,再将这些Recordset中的数据逐条输出到Word文档,然后就可以用程序或手工控制Word文档的格式,达到我们的特殊要求。这听起来挺麻烦,可只要了解了其工作原理,实际操作却很简单。下面就分别以在Access中和在Word中的具体操作为例进行介绍。
二、在Access中应用ADO将数据输出到Word
&&& 1. 系统配置
系统软件:Microsoft Windows 9x/NT/2000;Microsoft Access 2000;Microsoft Word 2000。
样例数据库:&C:\Program Files\Microsoft Office\Office\Samples\Northwind.mdb&,Office 2000中包含的例子。可将其中的&产品&表复制到一个新的数据库中,如&D:\db1.mdb&。
窗& 体:在数据库&D:\db1.mdb&中新建窗体&窗体1&,其中只包含1个命令按钮&命令0&。
引用ADO:按Alt+F11进入Visual Basic编辑器,执行&工具&-&&引用&命令,在弹出的引用窗体中选择&Microsoft ActiveX Data Objects 2.1&或更高版本。
引用Word:再次执行命令&工具&-&&引用&,在弹出的引用窗体中选择&Microsoft Word 9.0 Object Library&。
2. 代码详解
在&窗体1&的设计模式下右键单击&命令0&按钮,选择&事件生成器&,进入Visual Basic编辑器,创建过程&Private Sub 命令0_Click()&,其代码如下:
Sub 命令0_Click()
'输入表格标题
Title = InputBox(vbCrLf & vbCrLf & &请输入表格标题:&, &表格标题&, &XX公司产品报价单&)
If Title = && Then Title = &XX公司产品报价单&
'步骤1:建立数据连接cnn
'由于数据库已经打开,所以直接应用CurrentProject.Connection就可以建立连接
Set cnn = New ADODB.Connection
Set cnn = CurrentProject.Connection
'步骤2:用SQL语句创建记录集rs
Set rs = New ADODB.Recordset
'设定游标类型与锁定类型
rs.CursorType = adOpenKeyset
rs.LockType = adLockOptimistic
'制定特定的查询条件,可以是任何有效的SQL查询,甚至包括多表、多条件等复杂的查询,查询条件也常常从窗体取得
SQL = &select 产品名称,单位数量,单价,库存量 from 产品 where 单价&10.00&
'创建记录集rs
rs.Open SQL, cnn
'统计字段数及记录数
total_fields = rs.Fields.Count
total_records = rs.RecordCount
'步骤3:建立Word文档对象
Set mywdapp = CreateObject(&word.application&)
'调整Word窗口大小
mywdapp.WindowState = wdWindowStateNormal
'生成新的Word文档实例
mywdapp.Documents.Add
'设置视图为页面视图
mywdapp.ActiveWindow.View.Type = wdPrintView
'转到Word视图,显示文档生成过程
mywdapp.Visible = True
mywdapp.Activate
'设置文档(表格)字体
mywdapp.ActiveDocument.Range.Font.Size = &9&
'步骤4:将记录集rs中的字段名称和字段内容输出到Word,各字段之间用制表符分隔
'输出字段名称
For I = 0 To total_fields - 2
mywdapp.Selection.TypeText Text:=rs.Fields(I).Name & vbTab
'最后一个字段名称后加回车符
mywdapp.Selection.TypeText Text:=rs.Fields(total_fields - 1).Name & vbCrLf
'逐条输出字段内容
Do While Not rs.EOF
For I = 0 To total_fields - 2
tmpstr = rs.Fields(I).value
If rs.Fields(I).Name = &单价& Then
tmpstr = Format(tmpstr, &####.00&)
mywdapp.Selection.TypeText Text:=tmpstr & vbTab
'一条记录的最后一个字段后加回车符
mywdapp.Selection.TypeText Text:=rs.Fields(total_fields - 1).value & vbCrLf
rs.MoveNext
'步骤5:关闭记录集
Set rs = Nothing
'步骤6:对Word中的数据进行格式化处理
'选定文本,将其转换为表格
'设置视图为普通视图
mywdapp.ActiveWindow.View.Type = wdNormalView
'将光标移动到文档末尾
mywdapp.Selection.EndKey Unit:=wdStory
'删除文档末尾多余的回车符
mywdapp.Selection.Delete Unit:=wdCharacter, Count:=1
'选中全部内容
mywdapp.Selection.WholeStory
'将所选内容转换为表格
mywdapp.Selection.ConvertToTable Separator:=wdSeparateByTabs, DefaultTableBehavior:=wdWord8TableBehavior
'将光标移动到文档开头
mywdapp.Selection.HomeKey Unit:=wdStory
'选定表格对象
Set Temp_Table = mywdapp.ActiveDocument.Tables(1)
'根据需要对表格进行处理,这是制作表格格式的关键,可反复调试
'本例只简单地设置了表格居中、自动调整表格列宽、表头居中、标题行重复、设置表格边框线、设置表格纵向居中
Temp_Table.Rows.Alignment = wdAlignRowCenter
Temp_Table.AutoFitBehavior wdAutoFitContent
Temp_Table.Rows(1).Range.ParagraphFormat.Alignment = wdAlignParagraphCenter
Temp_Table.Rows(1).Range.Rows.HeadingFormat = wdToggle
Temp_Table.Borders(wdBorderLeft).LineWidth = wdLineWidth150pt
Temp_Table.Borders(wdBorderRight).LineWidth = wdLineWidth150pt
Temp_Table.Borders(wdBorderTop).LineWidth = wdLineWidth150pt
Temp_Table.Borders(wdBorderBottom).LineWidth = wdLineWidth150pt
Temp_Table.Range.Cells.VerticalAlignment = wdCellAlignVerticalCenter
'将光标移动到文档开头
mywdapp.Selection.HomeKey Unit:=wdStory
mywdapp.Selection.SplitTable
mywdapp.Selection.Font.Name = &黑体&
mywdapp.Selection.TypeText Text:=Title & vbCrLf
mywdapp.Application.ScreenRefresh '刷屏
'转到Acdess视图,显示结束对话框
mywdapp.Visible = False
Msg = &数据提取完毕。& & vbCrLf & vbCrLf
Msg = Msg & &总记录数=& & total_records & & 条&
MsgBox Msg, vbOKOnly, &数据提取完毕&
'转到Word视图,显示文档
mywdapp.Visible = True
mywdapp.Activate
Access软件网官方交流QQ群 (群号:)
      
&&&&【&&】&&&&【&&】&&&&【&&】&&&&【&&】&&&&【&&】
Access网店
价格:¥0 元
价格:¥50 元
价格:¥50 元
(9-13&11:27)
(9-13&11:18)
(9-13&10:32)
(9-13&09:36)
(9-12&21:39)
(9-12&18:58)
(9-12&16:14)
(9-12&10:53)
(9-12&09:39)
(9-11&22:21)
Access软件网 版权所有 CopyRight
提供支持 本站特聘法律顾问: 李慧 律师Devexpress.XtraGrid 控件,主子表的形式,怎样导出到EXCEL?
[问题点数:40分,结帖人conggang]
Devexpress.XtraGrid 控件,主子表的形式,怎样导出到EXCEL?
[问题点数:40分,结帖人conggang]
不显示删除回复
显示所有回复
显示星级回复
显示得分回复
只显示楼主
相关推荐:
本帖子已过去太久远了,不再提供回复功能。导出devexpress插件的GridControl控件中GridView表格中的数据到excel - 下载频道 - CSDN.NET
&&&&导出devexpress插件的GridControl控件中GridView表格中的数据到excel
&导出devexpress插件的GridControl控件中GridView表格中的数据到excel
使用说明:
只能导出导出devexpress插件的GridControl控件中GridView表格中的数据,表格中有什么数据导出什么数据,列顺序也不变。
文件说明:
1.ExportTableExcel.cs:实现导出逻辑的类
2.ExportExcelStyle.cs:导出的excel样式结构
3.ExcelFileExport.dll:打成的包,使用时引入系统,按如下方式调用即可
具体使用方法很简单,参考示例只用两行代码就OK了
只是我初学C#的一个总结,代码没有进行优化,有不足之处还请各位高手赐教,谢谢
若举报审核通过,可奖励20下载分
被举报人:
shihaiboshi
举报的资源分:
请选择类型
资源无法下载
资源无法使用
标题与实际内容不符
含有危害国家安全内容
含有反动色情等内容
含广告内容
版权问题,侵犯个人或公司的版权
*详细原因:
您可能还需要
Q.为什么我点的下载下不了,但积分却被扣了
A. 由于下载人数众多,下载服务器做了并发的限制。若发现下载不了,请稍后再试,多次下载是不会重复扣分的。
Q.我的积分不多了,如何获取积分?
A. 获得积分,详细见。
完成任务获取积分。
评价资源返积分。
论坛可用分兑换下载积分。
第一次绑定手机,将获得5个C币,C币可。
下载资源意味着您已经同意遵守以下协议
资源的所有权益归上传用户所有
未经权益所有人同意,不得将资源中的内容挪作商业或盈利用途
CSDN下载频道仅提供交流平台,并不能对任何下载资源负责
下载资源中如有侵权或不适当内容,
本站不保证本站提供的资源的准确性,安全性和完整性,同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
开发技术下载排行
积分不够下载该资源
如何快速获得积分?
你下载资源过于频繁,请输入验证码
如何快速获得积分?
你已经下载过该资源,再次下载不需要扣除积分
导出devexpress插件的GridControl控件中GridView表格中的数据到excel
所需积分:4
剩余积分:
VIP会员,免积分下载
会员到期时间:日
剩余下载次数:1000
VIP服务公告: 上传我的文档
 下载
 收藏
该文档贡献者很忙,什么也没留下。
 下载此文档
正在努力加载中...
DevExpress中GridControl自定义格式导出Excel
下载积分:200
内容提示:DevExpress中GridControl自定义格式导出Excel人文,科技,教育..
文档格式:PDF|
浏览次数:471|
上传日期: 18:38:23|
文档星级:
该用户还上传了这些文档
DevExpress中GridControl自定义格式导出Excel
官方公共微信基于DevExpress实现对PDF、Word、Excel文档的预览及操作处理 - 伍华聪 - 博客园
随笔 - 419, 文章 - 20, 评论 - 6430, 引用 - 20
在一般的管理系统模块里面,越来越多的设计到一些常用文档的上传保存操作,其中如PDF、Word、Excel等文档,有时候是通过分布式的WCF技术实现数据的显示和处理,因此希望直接预览而不需要下载文件,这样能够给我们提供很多的方便。在DevExpress里面,提供了相应的控件来显示和处理这些文档,本文主要介绍如何利用DevExpress的控件实现对PDF、Word、Excel文档的预览和操作处理。
1、PDF的预览和操作
在较早的DevExpress的控件里面,已经提供了对应的PDF文档的显示控件,不过由于其对PDF格式支持不是很好,有些文档是Office导出的,也不是很正常阅读,因此很少使用,本文介绍的DevExpress的PDF查看控件是基于14.1的,测试过很多文档,好像都能正常打开,因此也想在系统中广泛使用了。
为了演示这些控件的处理,我单独编写了一个例子,用来实现对PDF、Word、Excel等文档的处理。
为了显示PDF文档,我们需要在界面里面添加一个XtraPdfViewer.PdfViewer的控件,这个主要是用来显示PDF的,它有很多属性方法,用来实现对PDF的处理操作,测试界面设计好如下所示。
对PDF,我们一般主要是用来打开文件,另存为,或者预览就可以了。相关的操作代码如下所示。
/// &summary&
/// PDF测试显示窗体
/// &/summary&
public partial class PDFViewer : Form
//记录窗体的名称
readonly string mainFormT
public PDFViewer()
InitializeComponent();
//记录窗体的名称,并实现文档变化事件的处理,方便显示新的文件名称
mainFormText = this.T
pdfViewer1.DocumentChanged += new DevExpress.XtraPdfViewer.PdfDocumentChangedEventHandler(pdfViewer1_DocumentChanged);
/// &summary&
/// PDF文档变化后,实现对新文件名称的显示
/// &/summary&
void pdfViewer1_DocumentChanged(object sender, DevExpress.XtraPdfViewer.PdfDocumentChangedEventArgs e)
string fileName = Path.GetFileName(e.DocumentFilePath);
if (String.IsNullOrEmpty(fileName))
Text = mainFormT
Text = fileName + " - " + mainFormT
/// &summary&
/// 打开PDF文件
/// &/summary&
private void btnOpenFile_Click(object sender, EventArgs e)
string filePath = FileDialogHelper.OpenPdf();
if (!string.IsNullOrEmpty(filePath))
this.pdfViewer1.LoadDocument(filePath);
/// &summary&
/// 另存为PDF文件
/// &/summary&
private void btnSaveAs_Click(object sender, EventArgs e)
string dir = System.Environment.CurrentD
string filePath = FileDialogHelper.SavePdf("", dir);
if (!string.IsNullOrEmpty(filePath))
this.pdfViewer1.SaveDocument(filePath);
MessageUtil.ShowTips("保存成功");
catch (Exception ex)
LogTextHelper.Error(ex);
MessageUtil.ShowError(ex.Message);
/// &summary&
/// PDF文件打印
/// &/summary&
private void btnPreview_Click(object sender, EventArgs e)
this.pdfViewer1.Print();
从上面的代码,我们可以看到,对于PDF,我们操作起来很方便,主要就是在界面里面加载文件后,就可以对PDFViewer对象实现相关的操作了。
2、WORD文档的预览和操作
类似于PDF文档,我们对WORD文档,也是通过使用RichEditControl实现文档的显示,不过和PDFViewer不同,这个控件可以实现对文档的修改和保存操作,这种对于我们提供用户对文档进行编辑很方便。
测试例子的界面如下所示。
相关的操作代码,也和PDF的操作类似,不同的是,它在文档变化后,不能很容易从参数里面获取到对应的文档的路径,需要特殊的处理才能得到。
/// &summary&
/// WORD控件的测试例子
/// &/summary&
public partial class WordViewer : Form
//记录窗体的名称
readonly string mainFormT
public WordViewer()
InitializeComponent();
//记录窗体的名称,并实现文档变化事件的处理,方便显示新的文件名称
mainFormText = this.T
this.richEditControl1.DocumentLoaded += new EventHandler(richEditControl1_DocumentLoaded);
/// &summary&
/// WORD文档变化后,实现对新文件名称的显示
/// &/summary&
void richEditControl1_DocumentLoaded(object sender, EventArgs e)
string fileName = Path.GetFileName(this.richEditControl1.Options.DocumentSaveOptions.CurrentFileName);
if (String.IsNullOrEmpty(fileName))
Text = mainFormT
Text = fileName + " - " + mainFormT
//修改默认字体
DocumentRange range = richEditControl1.Document.R
CharacterProperties cp = this.richEditControl1.Document.BeginUpdateCharacters(range);
cp.FontName = "新宋体";
//cp.FontSize = 12;
this.richEditControl1.Document.EndUpdateCharacters(cp);
/// &summary&
/// 打开WORD文件
/// &/summary&
private void btnOpenFile_Click(object sender, EventArgs e)
string filePath = FileDialogHelper.OpenWord();
if (!string.IsNullOrEmpty(filePath))
richEditControl1.LoadDocument(filePath);//, DocumentFormat.Doc);
/// &summary&
/// 保存WORD文件
/// &/summary&
private void btnSaveFile_Click(object sender, EventArgs e)
this.richEditControl1.SaveDocument();
/// &summary&
/// 另存为WORD文件
/// &/summary&
private void btnSaveAs_Click(object sender, EventArgs e)
richEditControl1.SaveDocumentAs();
MessageUtil.ShowTips("保存成功");
catch (Exception ex)
LogTextHelper.Error(ex);
MessageUtil.ShowError(ex.Message);
/// &summary&
/// WORD文件打印
/// &/summary&
private void btnPreview_Click(object sender, EventArgs e)
this.richEditControl1.ShowPrintPreview();
加载文档后,界面显示内容如下所示:
文档控件很容易支持打印预览功能,打印预览的界面如下所示
不过话说回来,这个RichEditControl虽然能够较好显示Word文档,不过也有一些字体显示的不是很好,格式和微软的Word软件显示的有些不太一样,格式有所损失。
因此如果对于格式要求比较严谨的,建议还是只是做显示为佳,不要保存原有的文档。如果对格式不是特别严格,倒是可以作为一个文档服务器实现文档的新建、保存处理。
3、Excel文档的预览和操作
对于Excel文档的预览和操作,DevExpress控件在最近版本中增加的XtraSpreadsheet.SpreadsheetControl控件就可以实现Excel的显示和处理操作,这个控件很强大,可以处理很复杂格式的Excel文档,虽然我原来使用了另外一个FarPoint Spread控件组,不过这个XtraSpreadsheet控件组,如果集成在DevExpress也就很方便了。
这个DevExpress的控件,可以在其中进行Excel的新建、保存、打印预览等操作,当然也可以打开我们已有的Excel文件了。
打开文件后,界面效果如下所示。
界面的相关功能操作代码如下所示。
/// &summary&
/// Excel控件的测试例子
/// &/summary&
public partial class ExcelViewer : Form
//记录窗体的名称
readonly string mainFormT
public ExcelViewer()
InitializeComponent();
//记录窗体的名称,并实现文档变化事件的处理,方便显示新的文件名称
mainFormText = this.T
this.spreadsheetControl1.DocumentLoaded += new EventHandler(spreadsheetControl1_DocumentLoaded);
/// &summary&
/// 文档变化后,实现对新文件名称的显示
/// &/summary&
void spreadsheetControl1_DocumentLoaded(object sender, EventArgs e)
string fileName = Path.GetFileName(this.spreadsheetControl1.Document.Path);
if (String.IsNullOrEmpty(fileName))
Text = mainFormT
Text = fileName + " - " + mainFormT
/// &summary&
/// 打开Excel文件
/// &/summary&
private void btnOpenFile_Click(object sender, EventArgs e)
string filePath = FileDialogHelper.OpenExcel();
if (!string.IsNullOrEmpty(filePath))
IWorkbook workbook = spreadsheetControl1.D
workbook.LoadDocument(filePath);
/// &summary&
/// 保存Excel文件
/// &/summary&
private void btnSaveFile_Click(object sender, EventArgs e)
spreadsheetControl1.SaveDocument();
/// &summary&
/// 另存为Excel文件
/// &/summary&
private void btnSaveAs_Click(object sender, EventArgs e)
string dir = System.Environment.CurrentD
string filePath = FileDialogHelper.SaveExcel("", dir);
if (!string.IsNullOrEmpty(filePath))
IWorkbook workbook = spreadsheetControl1.D
workbook.SaveDocument(filePath);
MessageUtil.ShowTips("保存成功");
catch (Exception ex)
LogTextHelper.Error(ex);
MessageUtil.ShowError(ex.Message);
/// &summary&
/// Excel文件打印
/// &/summary&
private void btnPreview_Click(object sender, EventArgs e)
this.spreadsheetControl1.ShowPrintPreview();
预览也很方便,和Word的预览操作类似。
以上就是几个常用文档的显示和操作案例,有了这些我们很容易整合到我们的附件管理里面了。
如我在我的《Winform开发框架》、《混合式开发框架里面》使用的通用附件管理模块,就是基于这些特点,实现图片、Excel文档、Word文档和PDF等文档的在线预览和管理操作,界面截图如下所示。}

我要回帖

更多关于 devexpress教程 的文章

更多推荐

版权声明:文章内容来源于网络,版权归原作者所有,如有侵权请点击这里与我们联系,我们将及时删除。

点击添加站长微信