表格显示(精选4篇)
表格显示 篇1
0 引言
在开发基于报表的管理信息系统时, 用户可能会明确要求在窗体上显示他们自己设计的表格, 而这些表格中大多包含有样式非常复杂的表格。此时, 想利用C#中自带的表格控件实现需求几乎是不可能的。Excel是大众熟悉的电子表格处理软件, 其报表处理能力和数据表现能力都非常强大, 用其制作样式复杂的表格是一件非常简单的事情。如果能将Excel文件嵌入到C#语言开发的winform程序中, 就可以非常容易地解决在窗体上显示复杂表格的需求, 又能够实现让用户便捷地编辑数据和导出Excel文件等功能。
1 实现思路
虽然Excel可以制作样式复杂的表格, 但是软件系统的数据都被存放在数据库内, 因此必须编写代码将数据库文件内的数据输出到Excel文件内, 再将该Excel文件内容显示到窗体上就可以满足用户需求。具体实现思路如下:①按照用户设计的表格样式, 用Excel制作表格模板文件;②为了不破坏模板文件, 在使用文件之前, 通过代码复制模板文件, 以后的所有操作都在新文件上执行;③编写C#程序, 通过ADO.NET技术从数据库内提取数据, 向Excel文件的指定单元格输出数据并保存文件;④将Excel文件嵌入到窗体中, 供用户浏览修改, 并可以保存修改后的内容。
2 C#中控制Excel文件的方法
2.1 引用Excel类型库
在C#中控制Excel文件的前提是添加Excel的引用。根据计算机上安装的Excel软件版本的不同, 组件名称和类型库的版本也不一样, 此处Excel的版本为2003版本, 因此COM组件名称为Microsoft Excel 11.0 Object Library。引用Excel类型库的具体操作方法为:①在解决方案资源管理器中, 右击“引用”菜单项, 选择“添加引用”;②在“添加引用”对话框中, 选择“COM”选项卡, 并从列表框内选择Microsoft Excel 11.0 Object Library;③单击“确定”按钮, 关闭“添加引用”对话框。
2.2 编程控制Excel
引用Excel类型库后, 程序中就可以使用Excel相关的类和接口来控制Excel文件。常用到的Excel相关类和接口有Application (应用) 、Workbook (工作薄) 和Worksheet (工作表) 等。
2.2.1 逐单元格赋值输出
向样式复杂的Excel表格输出数据时, 由于单元格的合并拆分等原因, 加上需要向其赋值输出的单元格排列没有任何规律, 所以通常都会用到逐个单元格赋值输出的方法, 即在程序中一个一个定位单元格, 然后对其赋值输出。例如, 向Excel文件“temp.xls”的Sheet1工作表A1单元格输出“111”, B1单元格输出“222”的代码为:
2.2.2 使用ADO.NET直接向Excel输出
逐单元格赋值输出的方法只适用于少量数据传输, 如果传输的数据量非常大, 则会出现系统假死机现象。因此, 在向Excel输出大数据量, 且单元格排列也很规律的情况下可以利用ADO.NET技术直接访问Excel文件的方法输出数据。例如, 向Excel文件“temp.xls”的Sheet1工作表A2和B2单元格分别输出“张三”和“27”, A3和B3单元格分别输出“李四”和“30”的代码为:
//设置连接Excel文件的字符串, 并打开连接
在上面的代码中出现了“MyTable”、“name”和“age”等, 这些都需要提前在Excel文件中设置, 具体设置方法如下:
(1) 打开“temp.xls ”文件, 在Sheet1表的A1单元格中输入name, 在B1单元格中输入age。这一步是在设置列名。
(2) 先选中A1:B1, 然后选择“插入”|“名称”|“定义”菜单项。
(3) 在“定义名称”对话框中输入名称 MyTable, 然后单击“确定”按钮。这一步是在设置表名。
(4) 保存并退出“temp.xls ”文件。
至此, “temp.xls ”文件的设置已经全部设置好, 运行上面的程序后, 该文件Sheet1表中就会多出两行记录, 运行结果如图1所示。
2.3 使用WebBrowser显示、编辑和另存Excel文件
WebBrowser是C#中的一种浏览器控件, 它是Internet Explorer的一部分, 所以只能在安装了Internet Explorer的系统上使用。该控件最大的特点是, 在其内不仅可以显示网页内容, 也可以显示Word、Excel、PowerPoint和pdf等格式的文件内容。例如, 下面的代码将“temp.xls”文件内容显示到WebBrowser控件。
string str = Application.StartupPath + " temp.xls ";
webBrowser1.Navigate (str) ;
当Excel文件被嵌入到WebBrowser控件后, 就可以像在Excel软件内操作那样, 对其数据进行编辑更新。通过WebBrowser控件的ShowSaveAsDialog方法还可以另存嵌入其内的文件, 具体语句为:
webBrowser1.ShowSaveAsDialog () ;
3 结语
在基于C#语言的winform程序中, 使用WebBrowser控件将Excel嵌入到窗体内, 在同一个系统界面中实现复杂表格显示和控制的方法非常实用。但如果用户计算机内安装的是Office 2007, 则会影响Excel文件在WebBrowser中的嵌入显示。所以在针对Office 2007开发的应用程序, 笔者不建议使用本文的方法显示表格数据。
摘要:阐述了在C#winform程序中, 使用WebBrowser控件将Excel嵌入到窗体内, 以实现复杂表格显示和控制的具体方法。
关键词:Excel,C#,WebBrowser,复杂表格显示
参考文献
[1]如何使用Visual C#2005或Visual C#.NET向Excel工作簿传输数据[DB/OL].http://support.microsoft.com/kb/306023/zh-cn, 2006.
[2]如何使用WebBrowser控件在Visual C#2005或Visual C#.NET中打开Office文档[DB/OL].http://support.microsoft.com/kb/304662/zh-cn, 2007.
[3]斯琴巴图, 杨利润.零基础学Visual Basic[M].北京:机械工业出版社, 2008.
表格显示 篇2
展开这个图片
怎样才能把它们弄到一张纸上呢?
在 Excel 2010 中,你可以试试这么做:
打开需要打印的 Excel 文档,然后单击“文件->打印”,
在“设置”栏下,单击“无缩放”旁的小箭头;从下拉菜单中选择“将工作表调整为一页”,
这样我们就可以在同一页面打开完整的表格了。
PS:
在打印预览窗口,我们可以看大体看到页面设置。有时需要稍稍的调整,我们通常会单击“页面设置”进行操作。
其实,还有一个更简单的方法:直接拖拽鼠标调整设置。
单击预览窗口右下方的“显示边距”按钮;
表格显示 篇3
1. 引言
在电子政务和社会经济信息化高速发展的今天, 统计行业作为政府管理和决策以及向社会提供经济统计数据的信息服务部门正面临着信息化的新挑战。这种挑战主要表现在:虽然现在的各种调查统计和分析中, 计算机对数据的整理、分析和管理已基本得到实现。但这样的数据的处理和分析大部分是针对传统表格和一般的数理统计方法, 分析结果表现形式单一、不直观, 缺乏统一的框架对各专业统计数据进行有效的集成、整合、组织、管理及综合分析, 造成了统计数据的“条”“块”分割, 使各种统计指标缺乏可比性, 难以综合利用, 更加难以实现信息的数据挖掘[1]。
为了适应这种挑战, 需要改变以往信息处理方式, 建立社会经济统计地理信息系统。系统将已有的非空间统计信息系统与地理信息系统有机集成, 实现统计数据与空间地理信息的关联与匹配, 按地理空间的形式采集、组织和分析统计数据, 挖掘统计数据的空间内涵, 拓宽统计数据的应用范围。其中, 社会经济统计地理信息查询结果的多样式显示功能可以改变表格的显示样式, 克服了现在的一些软件只能显示原始数据的缺陷, 提高了用户对信息的分析、挖掘能力。
考虑到系统不仅以C/S结构在统计局内部使用, 也需以光盘的形式免费分发给用户, 论文采用开源组件Source Grid开发出Super Grid控件实现多样式显示功能。
2. 多样式显示功能分析
2.1. 数据格式
宏观经济数据是多样式显示功能的基础数据。就目前来看, 宏观经济主要的来源是统计报表、城市卡片和县卡片。另外, 基本单位汇总数据、人口普查汇总数据也是宏观经济数据的一部分。基本年鉴数据一般是报表数据经过处理后的结果, 年鉴数据在统计局的业务位置不是很重要, 但年鉴数据也是将来系统中可能需要处理的一部分, 应该也作为一种宏观经济的数据来源来考虑。
宏观经济数据的组织形式是多种多样的, 但透过复杂的数据组织结构, 它们也存在着共性, 就是每一个统计数据都可以通过空间、时间、指标来确定, 用数据库的语言描述就是可以分为地址码字段、时间字段、指标字段, 只要数据表中存在这几个字段, 就可以完整的描述统计数据。
系统的宏观经济数据存储在SQL Server 2005中, 表1为典型的宏观经济数据表结构, 其中的地址码与空间数据中的地址码 (DZM) 相对应, 实现空间数据与统计数据的统一[2]。查询后的宏观经济数据如2所示。
2.2. 功能需求分析
论文重点研究多地区、多年、多指标的宏观经济数据查询结果的多种表格方式显示, 具体有以下五种。
(1) 普通样式:原始表数据显示
(2) 地区分类样式:以地区为主, 显示各个时间的各种指标信息。
(3) 时间分类样式:以时间为主, 显示各个地区的各种指标信息。
(4) 指标分类样式:以各类指标为主, 显示各个地区、不同时间的信息。
(5) 时间-指标样式:以时间加各类指标为主, 显示各个地区的信息。
3. 详细功能设计
3.1. 界面设计
多样式表格显示模块需要以上述五种方式显示数据。其中, 普通样式可以直接显示, 不需要进行复杂处理。论文主要论述其他四种样式, 具体显示效果如图3所示。
如图1所示, 时间分类样式为跨时间 (年) 的多地区、多指标数据显示;地区分类样式为跨地区的多时间 (年) 、多指标数据显示;指标分类样式为跨指标的多地区、多时间 (年) 数据显示;时间_指标分类样式为时间+指标的多地区数据显示。
3.2. 核心组件设计
Visual Stdio.Net本身提供了一个数据绑定控件Data Grid[3][4][5]。可以直接将数据绑定到该控件中来显示所有数据, 这样就避免的使用for循环实现数据显示, 大大提高了程序的开发效率。总体上Data Grid控件是一个二维的数据网格, 用表格形式显示数据源数据, 并且支持选择、编辑、删除、分页显示和排序等功能。但是Data Grid控件只能显示单列数据, 样式简单。
Source Grid组件具有很强的重绘功能, 通过简单的命令, 如rowspan=2, 就可以实现跨行显示。系统基于开源组件Source Grid[6][7]开发出Super Grid控件, 如图2所示, 可以轻松实现各种表格的跨行、跨列显示。
该组件提供了四个数据多样式显示接口、一个数据处理接口和五个数据输出接口, 详细功能如下所示。
>Span State是实现跨地区显示的接口;
>Span Year是实现跨时间显示的接口;
>Span Indicator是实现跨指标显示的接口;
>Individual Query是实现时间指标样式的显示接口;
>Reduce Dumensionality是实现降维处理的接口;
>Expor HTML是实现HTML格式输出的接口;
>Expor Word是实现Word格式输出的接口;
>Expor Excell是实现Excel格式输出的接口;
>Expor XML是实现XML格式输出的接口;
>Out Put Table是实现表格输出的接口。
其中, Span State、Span Year、Span Indicator需要提供统一入口参数, 即原始表格信息, 表格格式为 (DZM、MC、YEAR、I1、……、In) 。实现时间-指标样式的显示效果, 需要首先对原始数据进行降维处理, 控件提供Reduce Dumensionality方法实现此功能。
4. 结论
宏观经济数据多时间、多地区、多指标的三维特征, 难以利用普通控件显示复杂样式。为了能够更加直观的反映数据, 满足用户对社会经济统计数据的深层次挖掘的需求, 论文利用开源组件Source Grid较好实现了4种复杂样式显示。同时, 由于Source Grid具有开源的特征, 基于Source Grid开发的控件Super Grid可以直接应用于社会经济统计地理信息光盘系统中, 开拓了统计信息的服务新领域。
参考文献
[1]杨宽宽, 宋雪清, 安凯.国家社会经济统计地理信息系统的设计与实现[J].地理信息世界, 2005, 8 (3) :32-34.
[2]张富, 张丽娟, 梁军, 张书亮.社会经济统计地理信息系统元数据库的设计及应用.测绘科学, 2007. (32) :1-3
[3]张康年, 柯善剑, 陈利文等.VC中利用DataGrid控件实现数据绑定.江西电力职业技术学院学报, 2012, 25 (2) :41-43.
[4]张建成.在ASP.NET中巧用DATAGRID控件[J].计算机与网络, 2010 (012) :68-72.
[5]杨梅, 魏恒义, 宫殿庆, 等.基于VC++.N ET的数据访问技术与实现[J].计算机技术, 2012, 22 (5) .
[6]http://sourcegrid.codeplex.com/.2012.7
表格显示 篇4
一、处理行列分布规则的表格
使用WPSOffice打开一个带有行列分布规则跨页表格的DOC文档。
1.将光标放在表格上,按一下鼠标右键,弹出菜单,光标移到“对象属性”,其子菜单弹出,移动光标到“行列操作”,按一下鼠标左键。
根据行列特征中的行数、列数,创建一个新的空表。
2.根据图中的数值,新建一个80行、5列的报表。
使用创建报表的方式建立一个空表,报表可以自动跨页。
3.将光标移动到菜单栏的“插入”,按一下鼠标左键,菜单弹出后光标移到“表格”,其子菜单弹出,移动光标到“创建报表”,按一下鼠标左键。
4.弹出创建报表对话框,表头行数设置为1,列数设置为5,表体行数设置为80。
5.将光标放在表格上,双击鼠标左键,使表格处于编辑状态。将光标移到表格的左上角位置时,光标会变成一个黑色的箭头,同时弹出信息框“选中所有表元”。
6.光标处于选中所有表元状态时,按一下鼠标左键,即可将整个表格内的数据全部选中。
7.鼠标光标放在被全选的表格上时,按一下鼠标右键,弹出菜单,光标移动到“复制文字”上,按一下鼠标左键,
8.双击刚刚创建好的空报表的“表体”部分,光标移到“第一条数据的第一个表元”上,按一下鼠标左键。
9.单击鼠标右键,选择“粘贴文字”即可。
一般拷贝过来的表格数据的第一行内容都应该作为表头来看待。
10.将光标放在第一行的行首位置,光标变成一个黑色箭头时,按一下鼠标左键。
11.将光标放在被选中的行上,按一下鼠标右键,弹出菜单,光标移到“剪切文字”,按一下鼠标左键。
12.将光标移到“表头”上,双击鼠标左键,光标定位在“表头的第一个表元”内,按一下鼠标右键,弹出菜单,光标移到“粘贴文字”上,按一下鼠标左键。
13.双击表格的“表体”部分,移动光标到第一行的左端,当光标变成黑色箭头时,按一下鼠标左键,将第一行“整行选中”。
14.将光标放在选中的行上,按一下鼠标右键,弹出菜单,移动光标到“行列操作”上,其子菜单弹出,移动光标到“删除行”,按一下鼠标左键。
到此,行列分布规则的跨页表格的数据已经完整。
二、处理行列分布不规则的表格
行列分布不规则的表格(即存在合并表元、拆分表元的表格)的处理办法比较烦琐: