数据导出

2024-08-17

数据导出(精选十篇)

数据导出 篇1

万全税控发票软件采用PowerBuilder技术开发, 用读写IC卡控制发票开具, 其数据库采取口令方式加密, 数据内容为明文, 在税控装置已上缴, 无法登录软件的情况下, 我们可以采取以下方法完美导出发票明细数据。

一、准备工作

1. 获取口令

先把税控软件安装目录下的“DATA”文件夹中的INVOICE DB文件改名, 然后运行发票软件就会跳出ODBC配置对话框, 用户名:dba, 用星号密码查看器即可显现*号密码 (见图1) 。

2. 安装驱动

安装从http://download.sybase.com/eval/Win32/SA902_Win32_ZH_Developer.exe下载的SQL Anywhere Studio开发版, 包含了数据库图形化管理工具Sybase Central及Adaptive Server Anywhere9.0驱动, 已到http://response.sybase.com/forms/saschndownload申请注册码:EEPDEANRREAG0027952010531解除60天时限。

二、导出数据

(1) 用Access 2007新建空数据库:发票明细数据.accdb。

(2) 在数据库窗口中, 切换到[外部数据]选项卡, 在[导入]选项组中单击[其他]按钮, 打开下拉菜单, 选择[ODBC数据库]命令, 弹出[获取外部数据—ODBC数据库]对话框, 选中[将源数据导入当前数据库的新表中]单选按钮, 单击[确定]按钮。

(3) 在[选择数据源]对话框, 单击[文件数据源]选项卡, DSN名称输入:发票明细数据, 单击[新建]按钮。

(4) 在[创建新数据源]对话框中选择[Adaptive Server Anywhere 9.0]驱动程序, 单击[下一步]按钮, 输入数据源名称:发票明细数据, 单击[下一步]按钮, 单击[完成]。

(5) 在[连接Adaptive Server Anywhere]对话框的[登录]选项卡, [用户ID]输入:dba, [口令]输入:“727D6A7A69696D836A79477D697167376F7172”, 单击[数据库]选项卡, 单击[浏览]按钮, 选定INVOICE.DB文件后单击[确定]按钮。

(6) 重新出现[选择数据源]对话框, DSN名称已默认发票明细数据, 单击[确定]按钮后, 在[连接Adaptive Server Anywhere]对话框输入口令, 再次单击[确定]按钮。

(7) 在[导入对象]对话框, 单击[全选]按钮, 最后单击[确定], 税控发票软件全部数据被导入至发票明细数据.accdb中。

三、整理数据

1. 分析结构

(1) 税控发票软件前台同数据库存在内外对应关系, 软件功能单一, 数据表较少, 表结构不复杂。

(2) 一般用英文或拼音缩写来命名表和字段, 也有组合使用的, 可参照表字段说明表DBA_pbcatcol, 结合字段的内容去判断含义。

(3) 查看Adaptive Server Anywhere数据库表属性:常规、列的中文注释。

(4) 通过以上分析, 找到中心表DBA_inv_common和关联表DBA_inv_common_item, 关联表对中心表起到补充说明作用。

2. 关联数据

(1) 将中心表DBA_inv_common、关联表DBA_inv_common_item、所开发票表DBA_inv_skfp各字段加注中文说明并定义关系, 见图2。

(2) 根据需求创建查询, 交换数据到Excel进行多角度销售分析。

(3) 万一发票流水号重复, 只需同时定义中心表和关联表中3个字段 (发票字号inv_wordno、发票流水号inv_flowno、发票代码id_fp) 的关系即可。

四、注意事项

(1) 一机多用户, 需分别导出DATA和以invoice打头加阿拉伯数字结尾的所有文件夹下的数据。

(2) 如一个单位多开票点, 分属不同营业场所, 应先进行数据合并, 后导出数据。

(3) 对于使用Access 2003导入发票数据出现的未知错误, 用数据库图形化管理工具Sybase Central删除inv_skfp表属性[常规]选项卡的注释文字:“记录哪些发票需要应用税控系统”, 即可解决。

数据导出 篇2

关键词:数据导出;数据网格控件;网格视图控件

中图分类号:TP311文献标识码:A文章编号:1009-3044(2007)12-21483-01

StudyonExportingDatatoExcelinASP.NET

CHAIXiao-hui

(DepartmentofComputerScience,ShangqiuTeachersCollege,Shangqiu476000,China)

Abstract:ThisarticlediscussedhowtoexportthedatatoexcelinASP.NET,theclassweproposefortheExporttoExcelarenotlinkedtothebackendstructureandcanbere-usedacrossprojectsforthecommonfunctionalityprovided.

Keywords:DataExport;DataGridControl;GridViewControl

1引言

在我们的研究生管理信息系统中,经常需要进行数据的导出操作,如学生学习计划、成绩单、各种统计报表等,其中最常用的就是把处理后的数据导出至Excel。格式要求的多样化给程序的实现带来了很大困难。为了解决这个问题,我们进行了较深入的研究,并提出了一种比较通用的解决方法,该方法不拘于具体背景,几乎不加任何修改即可直接使用。

2问题研究

在研究生管理系统中,我们原来的数据导出解决方法主要分为两种:

(1)无模板的数据导出:该类数据通常比较单一,不要求进行很多的数据统计工作。实现时采用通用的导出方法。首先处理标题信息,然后从数据控件中依次取出每一行中的数据,填充到对应的Excel单元格中。这种实现方法比较简单,本文不再讨论。

(2)有模板的数据导出:该类数据通常包含各种统计信息,并且要求按照特定的格式导出,而这些格式如果使用第一种方法太多繁琐,需要编写大量的控制代码来指定标题信息和各单元格的实际数据。下面对该问题进行分析。

由于格式要求不一,为了减少程序的工作量,我们原来的解决办法是把要求的格式固定为模板来保存,然后对每一个模板都编写相应的导出方法来实现。如图1所示为招生模块中一志愿上线统计报表的格式:

图1

解决方法:以DataGrid控件为例,设控件名称为dg_1,数据通过Dataset数据源进行绑定。导出数据时,首先利用.xlt格式的模板文件取得格式信息,然后从Dataset中取出数据进行直接导出,完成后保存为.xls格式。参考代码如下:

stringpath=getPath();

stringbookpath=path+filename+".xlt";

//取得模板文件的路径及名称

stringsavepath=path+filename+".xls";

Excel.ApplicationobjExcel;

objExcel=newExcel.Application();

objExcel.Workbooks.Add(bookpath);

Excel.WorksheetobjSheet;

objSheet=(Excel.Worksheet)(objExcel.Workbooks[1].Worksheets[1]);

HttpResponseresponse=HttpContext.Current.Response;

for(i=0;i<hang;i++)

{for(j=0;j<lie;j++)

{//导出实际数据至对应单元格

objSheet.Cells[i+6,j+1]=y_Ds.Tables[0].Rows[i][j].ToString().Trim();}}

objSheet.SaveAs(savepath);…

该方法虽然可以减少不用再每次指定标题等各种格式信息,但是由于实现时仍然需要指定各单元格对应的填充数据,所以工作量仍然很大。另外,类似研究生学习计划的数据每次只需导出一页(每个学生),而类似一志愿上线统计等的报表则一次就要求导出全部的数据。如果能够根据数据控件直接导出至Excel,不再一一指定行中各字段对应的Excel单元格,则可以很方便地进行导出操作。

3解决方法

为了描述方便,给定图2所示的导出文件格式,然后分别以DataGrid控件和GridView控件实现数据导出功能。

图2

3.1实现方法:

对于DataGrid控件,为了生成图2所示的标题格式,需要采用代码动态生成标题。需要在控件的ItemCreated事件中添加如下代码:

if(e.Item.ItemType==ListItemType.Header)

{TableCellCollectionTcc=e.Item.Cells;

Tcc.Clear();

Tcc.Add(newTableHeaderCell());

Tcc[0].RowSpan=2;

Tcc[0].Text="员工编号";

Tcc.Add(newTableHeaderCell());

Tcc[1].ColumnSpan=2;

Tcc[1].Text="员工姓名</td>";

Tcc[1].Text+="<tdrowspan='2'align='center'style='FONT-WEIGHT:bold;'>部门编号</td><tdrowspan='2'align='center'style='FONT-WEIGHT:bold;'>薪水</td><tdrowspan='2'align='center'style='FONT-WEIGHT:bold;'>雇佣日期</td></tr>";

Tcc[1].Text+="<tralign='center'style='FONT-WEIGHT:bold;'><td>LastName</td><td>FirstName</td></tr>";}

導出数据时的处理代码:

Response.Clear();

Response.AddHeader("content-disposition","attachment;filename=FileName.xls");

Response.Charset="";

Response.Cache.SetCacheability(HttpCacheability.NoCache);

Response.ContentType = "application/vnd.xls";

System.IO.StringWriter stringWrite = new System.IO.StringWriter();

HtmlTextWriter htmlWrite = new HtmlTextWriter(stringWrite);

dg_1.RenderControl(htmlWrite);

Response.Write(stringWrite.ToString());

Response.End();

此时如果DataGrid控件AllowPaging设置true,则程序执行时会产生如下错误:类型“DataGridLinkButton”的控件“dg_1_ctl14_ctl01”必须放在具有 runat=server 的窗体标记内。为了解决这个错误并导出所有数据,在创建控件时仍然允许分页,然后在调用Render方法之前把DataGrid控件的AllowPaging设置false并重新绑定数据。

对于GridView控件,标题部分的实现是在GridView控件的RowCreated事件处理程序添加类似的代码:

if (e.Row.RowType == DataControlRowType.Header)

{ //代码同上 }

实现数据导出时无论分页与否都会产生如下的错误:类型“GridView”的控件“gv_1”必须放在具有 runat=server 的窗体标记内。产生这个错误的详细原因可以参考文献[1]中的解释,本文不再详细解释,只对解决方法进讨论。参考文献[2]中提出新建一个Form对象来消除该错误,然而此时导出的Excel文件的开始位置包含一个多余的空行,为了研究产生这个问题的原因,我们可以在Excel文件中单独输出FORM对象的内容,如下所示:

可以看出,产生空行的原因是From对象包含有隐藏域。

我们的解决方法:

首先重载VerifyRenderingInServerForm方法,如下所示:

public override void VerifyRenderingInServerForm(Control control)

{}

然后执行数据导出,实现代码同上。

3.2通用的数据导出类

为了扩展方便,且容易使用,建立如下的通用数据导出类:

public class ExportData

{private HttpResponse r;

private Control c;

public ExportData(HttpResponse r_1, Control c_1)

{ r=r_1;

c = c_1;}

public void ExportToExcel()

{r.Clear();

r.AddHeader("content-disposition", "attachment;filename=FileName.xls");

r.Charset = "";

r.Cache.SetCacheability(HttpCacheability.NoCache);

r.ContentType = "application/vnd.xls";

//r.ContentType = "application/ms-excel";

StringWriter sw = new System.IO.StringWriter();

HtmlTextWriter htw = new HtmlTextWriter(sw);

string str = c.ToString();

switch (str.Substring(str.LastIndexOf(".") + 1))

{case "DataGrid":

((DataGrid)c).AllowPaging = false;

c.DataBind();

c.RenderControl(htw);

r.Write(sw.ToString());

r.End();

break;

case "GridView":

// }} }

调用方法:

首先在程序中重载VerifyRenderingInServerForm方法,然后建立ExportData对象,最后调用对象的ExportToExcel方法实现数据导出。

4 总结

本文就ASP.Net中如何实现数据导出至Excel进行研究,提出了一个比较通用的解决方法,最后定义出一个数据导出类来实现导出操作。该方案还可以扩展对其他的数据控件,扩展时只需要在ExportToExcel函数中添加对应的控件判断即可实现,在研究生管理系统中的学习计划、个人成绩单等数据的导出中已实际使用,运行效果可参考网站http://yjsb.ujs.edu.cn。

参考文献:

[1]http://blog.csdn.net/net_lover/archive/2006/09/25/1282106.aspx.

[2]http://www.c-sharpcorner.com/UploadFile/DipalChoksi/exportx

l_asp2_dc11032006003657M/ exportxl_asp2_dc.aspx.

[3]http://www.codersource.net/published/view/283/exporting_data_grid_to_excel.aspx.

[4]Stephen Walther(美)著.馬朝辉.等.译.ASP.NET技术内幕[M].北京:机械工业出版社,2002.9.

[5]李万宝.著.ASP.NET技术详解与应用实例[M].北京:机械工业出版社,2005.10.

多工作表数据导出的解决方法 篇3

在很多实际应用系统中, 经常需要将数据库的信息导出到Excel电子表格。比如: 在银行系统按企业单位名称导出贷款情况分析报表、在保险行业按客户住址分类导出客户信息表、在教育机构按学员所在单位分类导出学员信息表等, 这类数据信息量庞大, 在对信息资料分类、汇总的时候需要对数据进行整理, 之后按照一定的类目进行分类导出, 按用户需求呈现最直观的数据结果。Excel是一个可以负载多个工作表的办公软件, 将工作表作为数据分类的类目, 既方便归档数据的查阅, 也能节省空间, 因此被广泛地应用。

2 导出 Excel 的基本操作

目前导出Excel一般采用excel.application应用程序对象的方法, excel.application是Microsoft Office中自带的一个应用对象, 只要安装有完整版Office软件的系统上都会有, 调用方便, 网络系统程序通过调用它就可以完成数据库与Excel之间的数据导入导出。

2.1 环境的配置

进入控制面板 ->管理工具->组件服务中, 在DCOM配置中找到micosoft excel application这一项, 右键点击进入属性,在安全选项卡中的“启动和激活权限”设置给操作用户权限,并在标识选项卡中选择“交互式用户”。

2.2 调用 excel.application 对象的方法

上述代码在使用Excel导出时必须调用, 使用完毕之后必须及时关闭对象, 否则会造成服务器任务进程长期存在, 占用大量资源, 影响服务器运行速度。

3 导出多工作表受到的限制

3.1 软件限制

通常情况下, 创建Excel工作簿默认会生成3个工作表(sheet1、sheet2、sheet3), 这个工作表的数量可以根据需要而增加, 那么这个 工作表是 否可以无 限制地添 加呢 ? 通过查阅资料和实际试验发现, 在较低版本的Office中最多只能创建256个, 而在高版本中虽然可以突破这个限制, 但是由于数据量太大, 在导出自动生成工作表的过程中非常不 稳定 ,容易出现卡死或者异常错误的情况, 而且目前一般服务器上为了稳定性考虑, 安装的都 是旧版的Office软件 , 所以256个工作表的限制就成为了导出Excel时创建多工作表的一个屏障。

3.2 服务器性能限制

导出数据是一个在服务器上运行的一个软件与软件之间的数据对接, 数据量越大, 服务器的负载也就越大, 处理的时间也就越长, 如果服务器性能不强, 当处理时间过长, 就可能导致部分数据丢失。

4 大数据导出的实现方法

4.1 实际应用

在实际应用中, 经常会遇到需要导出多个工作表的情况。如银行系统需按储蓄所导出业务数据, 电信部门需按不同单位导出客户信息, 考试系统中也需要以单位作为工作表导出成绩单等等, 比如, 就网络考试系统来说, 随着考试系统深入、广泛的应用, 参与考试的单位不仅限于学校班级, 数量可能不止256个, 甚至可能超过512个, 也就是说可能需要导出512个或者以上的工作表, 问题怎么解决?

4.2 解决思路

既然导出一个Excel文件受到256个工作表的限制, 那么考虑生成多个Excel文件, 如果生成2个文件, 则上限可以提高到512个, 4个则可以提高到1024个, 以此类推。

那么就需要将导出的数据进行适当的拆分, 分配到不同的Excel文件中, 操作过程中不能删除数据, 为了防止重复,可以使用一个临时值, 作为是否已完成导出操作的识别码。

4.3 操作方法

按照指定排序读取前面256个单位信息, 并将该信息写入Excel中, 同时给这批单位赋予一个临时值1, 表示这批单位已经生成过, 并生成一个Excel文件。

完成第一步操作后, 再按照该排序方式读取临时值为0的256个单位, 并将其生成赋临时值, 生成一个名字不一样的新文件。如此依次循环生成, 最后全部执行完毕之后将所有单位的临时值归0, 完成操作。

4.4 主要代码

4.5 相关说明

Excel后缀名有xls和.xlsx两个 , 这里建议使用xls , 因为在常用的Windows Server 2003系统中2007版以上的Office附带的excel.application应用程序对象兼容性较低, 调用时容易出现异常, 所以一般服务器上都会安装 较稳定的03版本的Office, 而导出Excel的文件是以服务器作为依托的 , 生成的文件就必 然是对应 服务器版 本的 , 如果强行 将后缀名 改成2007版的xlsx的文件将无法运行 , 如果自行在服务器上安装2007版本的Office, 可以将后缀名改成xlsx并且运行 , 但是客户端可能安装的是各种不同版本的Office, 根据高版本可兼容运行低版本文件, 低版本不能运行高版本文件的原理, 也会造成部分客户端无法运行下载的文件, 因此作为导出Excel文件的服务器, 尽可能安装较低较稳定且通用的版本。

5 结语

Oracle中的导入导出表及数据 篇4

Oracle数据导入导出imp/exp就相当于oracle数据还原与备份。exp命令可以把数据从远程数据库服务器导出到本地的dmp文件,imp命令可以把dmp文件从本地导入到远处的数据库服务器中。利用这个功能可以构建两个相同的数据库。

1.用plsql实现

1.1使用plsql连接oracle,点击工具——导出表

1.2选择要导出的表

1.3可执行文件在C:oracleproduct10.2.0db_1bin 目录下

导出是exp 导入是imp 导出的为dmp文件

1.4导入文件:

点击工具——导入表

在导入文件中选择要导入的表 确认后点击导入

2.用dos命令实现

2.1Windows——R——cmd

2.2输入dos命令:

exp youngtop_us/ail@192.168.0.46/orcl10g file=F:/fileSys.dmp log=F:/fileSys.log statistics=none tables=file_attach,file_tree,file_permission

ps:exp user/password@主机地址 file=存储位置 log=存储位置 statistics=none tables=tablename

3.将数据导出到excel表中及将excel表数据导入数据库

3.1选中要导出数据的表右键——查询数据

3.2选中表中的数据邮件——复制到excel

3.3在excel中保存

3.4可以不按照数据库中的字段存放顺序,编辑形成Excel表中的数据

3.5选中要导入的数据后另存一份txt文档

3.6在plsql中点击 工具——文本导入器

进入到文本导入器的页面后,先点击“来自文本文件的数据”选项卡,然后点击打开按钮,选择数据录入.txt文件

3.7在配置中进行配置

如果不将标题名勾选上,则会导致字段名也当做记录被导入到数据库中,影响正确录入

科学导出高效之路 篇5

一、当学生兴趣被激活,导学案才能出现

教学本该是充满趣味和思维活力的师生双边活动,学生在其感兴趣的情境中,思维更灵活,更能满腔热情地投入思考,从而提高分析解决问题的能力。所以课堂开课不能过早、过于直接呈现一些思考练习,而要运用多种方式导入新课激发学生兴趣,给学生一个预热的过程。让学生带着兴趣和探究的欲望进入课堂。也就是说,导学案不适合超越学生兴趣过早呈现,它代替不了课堂激趣导入。

二、围绕核心问题的精讲引领不可或缺

导学案不能代替传统的激趣导入,也不能代替教师必要的精讲引领。在学生依据导学案自主学习的基础上,教师要了解学生对关键问题的理解,根据学生的汇报和学习状态考虑如何参与学生的学习,然后进行针对性讲解,达成教学目标。真正做到学生已经懂的不讲,学生自己能弄懂的不讲,学生自己学习之后还不懂的一定要讲,突出重难点知识的理解和深入内化。

比如一位语文教师执教《陶罐与铁罐》,在学生经过了导学案的引导学习,有了基本的认识后,教师提出了一个综合性问题:你认为陶罐和铁罐究竟谁更有优势呢?它们在对待个人的优点和他人的不足时,谁说得对,为什么?这个问题的设计既立足文本又超越文本,学生既需要结合文本信息,又需要结合个人生活经验才能回答,是一个联系学生知识世界、生活世界、心灵世界的有思考价值的问题,学生在进一步讨论和教师的精讲引领中对这一问题的深化理解,非常有利于对文本重难点知识的掌握。

三、导学案中学习目标的设计要明确具体

导学案的学习目标和教师教案中的教学目标并不完全一样,学习目标在导学案中是给学生看的,要让学生清楚自己的学习任务,要以学生的立场和角度去表述。要多用“能记住”“能说出”“会运用”“解决”等可检测的明确用语。比如一位教师教学《可贵的沉默》拟订的学习目标:

1.会认16个生词,会写其中的8个生词;

2.能和小组同学一起分角色、有感情地朗读课文;

3.能读懂课文内容,感受父母对自己的爱,并懂得关心父母;

4.能体会抓住人物神态、动作进行生动描寫的方法。

这几项学习目标,针对学生基础知识掌握、语文能力提升及情感发展等各方面,既全面又具体明确。而还有一位教师教学古诗《乡村四月》拟订的学习目标是这样的:

1.按要求认读生字词;

2.有感情地朗读、背诵这首诗;

3.自主学习,发挥想象,理解诗意,从中感受乡村田园风光的美丽,劳动生活的紧张忙碌,培养对劳动人民的热爱之情;

4.培养学生阅读故事的兴趣。

很显然学习目标中的3、4和教学目标还是混淆的,学生不会太明确学习任务和学习内容,因此不会对学生的学习有引领作用,成了一个摆设。

四、导学案的探究性问题要精心提炼

导学案中的探究性问题既要起到引导学生理解文本的作用,又要有概括性,能促进学生思维的整合;既要有利于引导学生进行贯穿全文的思考,有利于学生知识的建构,又要有利于激起学生思考,有利于学生能力的达成和精神的塑造。绝不能是学生在课文中简单寻找答案填空。而是要引导学生阅读文本获取信息后,综合自己已有的经验进行知识的重组和建构。比如有一位语文教师教学《可贵的沉默》(1-13自然段),导学案中设计的探究问题是:

1.阅读1-9自然段,找出描写课堂热闹的句子(在文中用横线画出),想一想,从这些句子中,你体会到什么?

2.阅读10-13自然段,思考孩子们为什么沉默(在文中用波浪线画出),孩子们在想些什么?

这两个探究问题的第一问都是针对文本语言本身的理解,第二问都是需要结合学生自身生活、学习、精神情感,进行综合才能解答。这样的探究问题才能促进学生语言、思维、精神情感的同步发展,才具有培养学生高层次阅读能力的价值。

最后,导学案的主要功能是导学,对学生自主学习中基础知识掌握情况的检测自然必不可少,但是不必过于繁琐细致地列出太多的训练题,让学生大量地抄写、组词、填空。应该把握学生在字、词、句等基础知识中易出错的内容加以训练检测,让预习检测发挥导学功能。

数据导出 篇6

目前很多基于C#.NET的数据库应用程序多会采用DataGridView控件展示数据信息, 用户在查询数据的同时, 也希望能将DataGridView中的数据导出到他们所熟悉的办公软件Excel中进行二次处理, 文中主要介绍如何实现数据导出到Excel。

2 系统需求分析

2.1 用户需求

程序员在开发基于C#.NET的数据库应用程序时, 经常会使用DataGridView。但Visual Studio中自带的DataGridView控件却没有提供导出Excel功能。用户往往采用选中单元格直接复制粘贴, 但由于字符集不同, 经常会出现粘贴完是中文字符变成了乱码 (如图1所示) 。必须进行“选择性粘贴” (如图2所示) , 选择“Unicode文本”才能避免这个现象。为了减少用户的烦恼, 程序员可编写程序来实现数据的自动导出。

2.2 功能需求

为了方便程序员的后期开发, 这个导出功能需实现两点要求:

(1) 在带有DataGridView控制的窗体中 (如图3所示) 用户点击按钮自动将当前的DataGridView中的数据全部导出到Excel (如图4所示) 。

(2) 导出方法能在多个DataGridView控件中灵活调用, 避免重复代码。

3 功能实现

3.1 程序开发前的准备工作

打开Visual Studio, 在项目中添加引用Excel动态链接库。

为实现将DataGridView控件中的数据导出到Excel中, 需要引用Excel动态链接库 (Microsoft Excel 11.0 Object Library) , 这样才可以通过C#语言灵活控制Excel。

注意:由于Office的版本不同, Excel的动态链接库版本号也可能不同。

添加方法如下:

首先在开发环境的菜单栏点击“项目/添加引用”, 弹出如图5添加引用窗体:

之后选择“COM”选项卡, 在“组件名称”列表中选择“Microsoft Excel 11.0 Object Library”, 点击确定, 添加引用成功。如图6所示, 在解决方案资源管理器中的引用中会多出Excel和Microsoft.Office.Core两个引用。

3.2 定义公共类的数据导出方法

在公共类 (如Operation类) 中建立自定义方法ExportData Gridview来实现。

主要通过二层循环 (外层按行和内层按列) 依次遍历DataGridview中的所有数据, 赋值到Excel的cell对象中, 并打开Excel即可。

在此方法中有两个自定义参数, 一个是DataGridView对象, 一个是导出过程是否显示Excel。以方便在程序种进行调用。

代码实现如下:

3.3 在程序中调用导出方法

在程序中调用公共类的自定义方法ExportDataGridview来实现数据导出。程序员只需将窗体中的DataGridView的控件名称写到对应参数中即可, 导出不同的DataGridView控件只需更换控件名称即可, 非常简单。

代码如下:

4 结语

在面向对象的编程中, 要充分利用类和对象, 将经常使用的功能放在类中用方法实现, 在用户窗体中只需通过将公共类实例化对象, 再调用相应的方法即可。这样可以减少大量的重复代码, 也使程序更加清楚。程序员开发程序时, 不建议将程序写得很复杂, 只要能实现用户的需求, 程序越简单越好。

摘要:在基于C#.NET平台的数据库应用程序开发中, 经常会用到DataGridview控件, 主要介绍将DataGridview控件的数据导出到Excel, 以方便用户制作更多的报表。

关键词:DataGrid控件,Excel软件,C#.NET语言

参考文献

[1]管建军.软件工程.武汉:武汉大学出版社, 2008.

[2]吴源.SQL Server2005数据库管理精讲.北京:电子工业出版社, 2008.

[3]王小科, 梁冰, 吕双.Visual C#2005程序设计自学手册.北京:人民邮电出版社, 2009.

纯文本数据在VFP中导入导出 篇7

多数应用软件都有文件存储格式,VFP6.0不能直接打开,为了在VFP6.0中使用,就需要使用数据导入功能。可以将纯文本文件导入成为dbf格式的文件,导入纯文本文件可以减少录入的工作量。

1.1 使用菜单

(1)在VFP6.0文件菜单中选择导入命令,弹出的对话框中选择导入向导;(2)执行此向导。

1.2 使用命令

(1)在VFP6.0中打开要导入文本文件的表;(2)执行append from g:shujushuju.txt type sdf命令(其中g:shujushuju.txt为文本文件的路径和文件名)。

1.3 表中备注字段内容的导入

将文本文件中的一行写入一个备注字段中,可以用如图1代码实现,其中如果有addi表示在原有备注字段内容的后面追加内容,否则覆盖原有内容(见图1)。

2 在VFP6.0中导出纯文本数据

导出数据是将表记录的数据转化成其他应用系统可以使用的文件格式,可以备份数据,提高数据库的安全性。导出数据是导入数据的逆操作。这里分两种情况讨论表数据的导出操作。

2.1 在VFP6.0中导出表为纯文本数据

在VFP6.0中导出表为纯文本数据后,文本文件中一行内容为原表中一条记录,执行导出操作之前都需要先将表打开。有如下二种方法:

(1)执行VFP6.0应用程序窗口中文件菜单中的导出命令,设置导出对话框中的类型为Delimited Text格式,另存为保存类型为全部文件,导出文件的名字一定要加上扩展名txt。

(2)在命令窗口执行COPY TO g:shujushu.txt(路径名+文件名.txt)DELIMITED命令。

在某些情况下需要将一条记录或某几条记录导出到一个文件中,比如要求将一条记录导出到一个文件中,这时就需要编写一小段程序代码,见图2。

2.2 在VFP6.0中导出备注字段为纯文本数据

对于带备注字段的表不能直接使用菜单和简单的一条命令来完成导出操作,如果那样会丢失备注字段数据。一般将表中每条记录中的每个备注字段单独保存为一个文本文件,用图3所示代码来实现。

3 结束语

在VFP6.0中导入导出文本文件一般操作比较复杂,需要编写程序来完成,尤其对于备注字段的导入导出需要单独来操作。

参考文献

[1]李加符,邸雪峰,桂敏文,等.Visual Foxpro6.0入门与提高[M].北京:清华大学出版社,2000.

[2]赫峰,何曙光.Visual Foxpro6.0/7.0命令函授大全[M].北京:电子工业出版社,2002.

[3]张洪举.Visual Foxpro6.0开发答疑160问[M].北京:人民邮电出版社,2003.

数据导出 篇8

在数据库应用系统开发中, 经常需要将Excel中的数据直接导入到SQL Server数据库中;另外, 为了方便地对数据库中的数据进行打印, 有时又需要将数据库中的数据导出到Excel中, 借助Excel自身的打印功能进行报表输出和打印。以导入导出学生信息为例, 讲解在Visual C#2005中实现导入导出数据的方法。

2 数据库及表

学生信息数据库名称为:db_student。数据库中包含student表, 表中包含如下字段, 如表1所示。

3 数据导入

导入数据时, 可先将Excel中的数据导入到窗体的DataGridView控件中, 再将DataGridView控件中的数据存入数据库即可。

Excel数据文件可以看作是一个数据库, 其中的工作表可看作是数据库中的表。通过提供程序“Microsoft.Jet.OLEDB.4.0”连接Excel数据源, 读取其中的数据, 然后再显示到DataGridView控件中。

在Visual C#2005中新建一个项目, 在项目中添加一个Windows窗体, 窗体文件名称为:frm Input Student.cs。

该窗体界面运行效果如图1所示。

(1) 该窗体上包含如下主要控件:

1) 在ToolStrip工具栏上放置3个Button, 名称分别是“tsb Input”、“tsbSave”和“tsbExit”。

2) 1个Label控件, 显示操作说明, 其Text属性设置为图1中所示文字。

3) 1个DataGridView控件, 名称为:dgv Student。用来显示导入的学生信息,

4) 1个OpenFileDialog控件, 名称为“openFileDialog1”, 用来显示打开文件对话框, 选择要打开的Excel文件。

(2) 该窗体代码如下:

在导入学生信息窗体中, 导入Excel数据到数据集的代码放在了一个自定义方法ExcelToDS () 中。在“导入Excel文件”按钮的Click事件方法中, 调用ExcelToDS () 方法, 得到数据集对象, 再将数据集对象的内容显示到表格控件dgv Student中。

4 数据显示

Excel对象模型包括了128个不同的对象, 从矩形、文本框等简单的对象到透视表、图表等复杂的对象。下面介绍一下其中最重要, 也是用得最多的四个对象。

(1) Application Class对象。Application Class对象处于Excel对象模型层次结构的顶层, 表示Excel自身的运行环境。

(2) Workbook对象。Workbook对象直接处于Application Class对象的下层, 表示一个Excel工作簿文件。

(3) Worksheet对象。Worksheet对象包含于Workbook对象, 表示一个Excel工作表。

(4) Range对象。Range对象包含于Worksheet对象, 表示Excel工作表中的一个或多个单元格。

导出数据库中的数据到Excel文件需要首先在项目中添加对COM组件中的“Microsoft Excel 11.0 Object Library”的引用, 在代码中, 引用“Microsoft.Office.Interop.Excel”和“Microsoft.Office.Core”命名空间。

使用下面的步骤可以将数据库中的内容写入Excel文件:

(1) 使用适配器对象执行查询命令, 查询出将要导出的数据。

(2) 将查询结果填充到数据集或数据表对象中。

(3) 创建Excel应用程序对象、工作簿对象和工作表对象。

(4) 依次将数据集或数据表对象中的每条记录写入到Excel工作表对象中。

在项目中再添加一个Windows窗体, 窗体文件名称为:frm Output Student.cs。

该窗体运行效果如图2所示。

导出信息到Excel中的运行效果如图3所示。

(1) 该窗体上包含如下主要控件:

1) 1个Combo Box控件, 提供班级编号的列表值。

2) 2个Button控件, 名称分别为:“btn Output”、“btn Exit|”。

(2) 该窗体代码如下:

5 结语

数据导出 篇9

1 XML 数据交换技术

XML文档有两种定义语言 : 一种是文档类型定义DTD, 另一种是XML模式 (XML Schema)。其中, XML模式支持转换不同类型的数据, 支持扩展, 语法更严格并且支持验证[2]。基于XML的数据交换技术是利用XML文档作为中间载体进行数据之间的信息交换, 将待交换的数据先以XML文档的格式从源数据库中导出来, 再经过解析、验证, 然后导入到目标数据库中[3]。使用Microsoft Excel导入从其他数据库和应用程序中创建的XML数据, 将XML元素映射到工作表单元格中,实现与其他数据库和应用程序进行交互[4]。

2 XML 数据导出

XML数据的导出过程包括 : 首先按照Excel的XML表格格式 (其格式可以参考Excel表格另存为XML表格文件) 输出文件头结构, 并控制输出的Excel的字体和单元格的宽度、高度等属性; 其次循环输出数据库中的数据到XML数据文件中; 然后将XML数据文件另存成Excel文件。关键部分代码如下:

3 结语

异构数据源之间的数据转换成为管理系统开发过程中的重要操作, 在.NET平台基础上, 使用C# 编程实现了将SQL Server数据库中的数据导出到XML文件中并且控制字体、宽度和高度等格式, 保证了数据导出时的格式控制, 避免了直接对Excel的控制编程, 为管理信息系统的开发提供了一定的参考价值。

摘要:针对管理系统数据导出到Excel的格式控制问题,采用XML作为格式处理和数据交换的载体,分析了SQL Server数据库输出到XML的过程,并使用C#语言编程实现,给出了关键代码。

顺学而导,导出实效 篇10

[关键词]课堂教学 顺学而导 导出实效

[中图分类号] G623.5 [文献标识码] A [文章编号] 1007-9068(2015)29-082

“顺学而导”就是教师在教学中紧密结合学情,根据学情灵活调整教学思路,创造性地利用课堂中的生成性教学资源。倡导“顺学而导”需要教师在科学、适度的前提下,把整个数学活动的重心转到学生的“学”上,教师只需“因学设教,顺学而导”。这样教学,可以有效避免传统教学束缚较强的弊端,从而使课堂教学多几分洒脱与从容。

一、因学设导,内化提升

学生是课堂学习的主人,教师可以根据教学内容的安排让学生先行自学,然后再针对学生原有的思维水平因学设导,并且以此为基点,在学生学习困难处加以引导,以指明探究或者思考方向,进而使学生所学知识能够融会贯通,起到内化提升的作用。

如教学“小数加法和小数减法”时,以“4.75+3.4”为例,我让学生运用学过的方法先行自学,自己试着解决问题,然后再汇报交流。学生出现了以下两种情况:1.小数点与小数点对齐,结果是8.15。2.把数字从右到左对齐,各个数位上数字相加。到底哪个是正确的?我这样引导学生:“如果从小数点对齐这个角度来考虑,你能得出什么结论?如果把算式从右到左对齐,这样相加,有什么不妥的地方吗?为什么?”学生以问题为基点,积极展开思考探究,进而得出:只有相同的计数单位才能相加减,因此,要把小数点对齐再相加。

在这个教学过程中,教师把学习的主动权充分还给了学生,让学生自己尝试,自己总结学习的方法,然后再进行交流汇报,最后根据学生的汇报情况,进行恰当的引导、点拨,使学生在深入思考中理解了知识的本质。

二、以导促学,学导结合

在课堂教学中,教师的导是有目的的。在学生思维受阻时,在学生缺乏学习兴趣时,教师如能通过自己的巧妙引导,如蜜蜂引路一般帮助学生找到努力的方向,让教师的导与学生的学有机地结合起来,那么将会使学生真切地感受到“山重水复疑无路,柳暗花明又一村”的境界。

如教学“梯形的面积计算”时,教师可以通过学生的预学掌握学生学习情况的第一手资料,然后,让学生说说求梯形的面积都有哪些方法。有学生认为可以把梯形转化为一个平行四边形与一个三角形来计算,有学生认为可以把梯形转化为两个三角形的面积来计算(学生已经学过如何求平行四边形和三角形的面积)。在学生汇报的时候,教师根据汇报情况及时指出:“能说说在解决这个问题的过程中,对于你想求出梯形的面积最大的障碍是什么?”在学生回答后,教师继续引导:“怎样才能化未知为已知,把解决问题中的拦路虎一一搬走呢?”

在这个教学过程中,教师始终处于一种引导者、参与者的地位,让学生自主去发现、探究,教师只需要在学生受阻的时候适时指点一下,这样轻轻松松就能提升学生解决问题的能力。

三、导在关键,导在节点

在数学课堂教学中,教师的导学行为是贯穿于整个课堂教学活动之中的,要想让教师的导学行为凸显实效,教师的顺学而导就要导在关键点。在具体的语言运用上,教师的教学语言要精要,要起到点拨引导作用,要注重讲清重难点、新旧知识联系点,进而通过教师的引导帮助学生理清思路,提高教学效果。

如教学“观察物体”时,教学的主要目标是让学生明白“从不同角度进行观察,所观察到的物体的样子是不一样的”,以此培养学生的空间想象、操作和推理能力。教学的难点是让学生能够正确辨认出从上面、正面、侧面所观察到的物体的情况。在教学这一课时,为了突破教学难点,顺利达到教学目标,我先把从学校不同角度拍摄到的照片让学生观察、辨认。在学生分辨不出来的时候,我引导学生:“请大家结合自己对学校的印象,闭上眼睛想象一下,我们学校的前面有什么,后面有什么,左右两边各是什么?如果从高空往下看,我们的学校又会是什么样的?”在学生的想象中,学校的一草一木都变得清晰起来,这时再让学生回答,学生都能回答得很准确。

在这个教学过程中,为了帮助学生尽快找到解决问题的最佳途径,教师主要通过恰当的语言引导学生想象。这样的引导,既导在了教学的关键点,又导在了学生学习的疑难点,提高了教学效果。

总之,在小学数学教学过程中,要想让学生真正学得轻松,学得自然,教师就要注重顺学而导教学策略在课堂教学中的运用。只有这样,才是真正尊重学情,从学生学习需要出发,进而使课堂教学更加高效。

上一篇:执行元件下一篇:适度经营