excel表格怎么写标题编程怎么写了!

EXCEL宏编程实例_百度文库
赠送免券下载特权
10W篇文档免费专享
部分付费文档8折起
每天抽奖多种福利
两大类热门资源免费畅读
续费一年阅读会员,立省24元!
EXCEL宏编程实例
阅读已结束,下载本文需要
想免费下载本文?
定制HR最喜欢的简历
下载文档到电脑,同时保存到云知识,更方便管理
加入VIP
还剩14页未读,
定制HR最喜欢的简历
你可能喜欢51CTO旗下网站
几条C#的Excel编程技巧
Excel是微软公司办公自动化套件中的一个软件,他主要是用来处理电子表格。Excel以其功能强大,界面友好等受到了许多用户的欢迎。这里我们将介绍几条C#的Excel相关编程技巧
作者:佚名来源:编程入门| 14:01
在办公的时候,正是由于Excel的这么多的优点,许多重要的数据,往往以Excel电子表格的形式存储起来。这样就给程序员带来了一个问题,虽然Excel功能比较强大,但毕竟不是数据库,在程序中处理数据库中的数据比其处理Excel表格中的数据容易许多。那么如何用Visual C#的Excel表格中的数据?在以前用Delphi编程的时候,对于不同的用户,他们对于打印的需求是不一样的,如果要使得程序中的打印功能适用于每一个用户,可以想象程序设计是十分复杂的。这时想到Excel,由于Excel表格的功能强大,又由于几乎每一台机器都安装了它,如果把程序处理的结果放到Excel表格中,这样每一个用户就可以根据自己的需要在Excel中定制自己的打印。这样不仅使得程序设计简单,而且又满足了诸多用户的要求,更加实用了。那么用Visual C#的Excel,如何又把数据存放到Excel表格中?本文就来探讨一下上述问题的解决办法。
一.C#的Excel程序设计及运行环境
(1).微软视窗2000 服务器版
(2)..Net Framework SDK Beta 2
(3).Microsoft Data Access Component 2.6以上版本(MDAC2.6)
(4).Office 2000套件
二.Visual C#的Excel表格中的数据:
本节将通过一个程序来介绍Visual C#读取Excel表格中的数据,并把数据以DataGrid的形式显示出来。
(1).如何读取数据:
其实读取Excel表格中的数据和读取数据库中的数据是非常类似的,因为在某种程度上Excel表格可以看成是一张一张的数据表。其二者的主要区别在于所使用的数据引擎不一样。在本文的程序中,通过下列代码实现读取Excel表格数据,具体如下:&string&strCon&=&"&Provider&=&Microsoft.Jet.OLEDB.4.0&;&Data&Source&=&c:\\sample.Extended&Properties=Excel&8.0"&; &OleDbConnection&myConn&=&new&OleDbConnection&(&strCon&)&; &string&strCom&=&"&SELECT&*&FROM&[Sheet1$]&"&; &myConn.Open&(&)&; &file:&OleDbDataAdapter&myCommand&=&new&OleDbDataAdapter&(&strCom&,&myConn&)&; &file:&myDataSet&=&new&DataSet&(&)&; &file:&myCommand.Fill&(&myDataSet&,&"[Sheet1$]"&)&; &file:&myConn.Close&(&)&;&
怎么样读取Excel表格中的数据其实和读取数据库中的数据没有什么实质上的区别。
注释:这里读取的是C盘根目录下的"Sample.xls"文件。
(2).用DataGrid来显示得到的数据集:
在得到DataSet对象后,只需要通过下列二行代码,就可以把数据集用DataGrid显示出来了:DataGrid1.DataMember=&"[Sheet1$]"&; &DataGrid1.DataSource&=&myDataSet&;&
(3).用Visual C#读取Excel表格,并用DataGrid显示出来的程序代码(Read.cs)和程序运行的界面:
掌握了上面二点,水到渠成就可以得到以下代码:using&System&; &using&System.Drawing&; &using&System.Collections&; &using&System.ComponentModel&; &using&System.Windows.Forms&; &using&System.Data&; &using&System.Data.OleDb&; &public&class&Form1&:&Form &{ &private&Button&button1&; &private&System.Data.DataSet&myDataSet&; &private&DataGrid&DataGrid1&; &private&System.ComponentModel.Container&components&=&null&; &public&Form1&(&) &{ &file://初始化窗体中的各个组件 &InitializeComponent&(&)&; &file://打开数据链接,得到数据集 &GetConnect&(&)&; &} &file://清除程序中使用过的资源 &protected&override&void&Dispose&(&bool&disposing&) &{ &if&(&disposing&) &{ &if&(&components&!=&null&) &{ &components.Dispose&(&)&; &} &} &base.Dispose&(&disposing&)&; &} &private&void&GetConnect&(&) &{ &file://创建一个数据链接 &string&strCon&=&"&Provider&=&Microsoft.Jet.OLEDB.4.0&;&Data&Source&=&c:\\sample.Extended&Properties=Excel&8.0"&; &OleDbConnection&myConn&=&new&OleDbConnection&(&strCon&)&; &string&strCom&=&"&SELECT&*&FROM&[Sheet1$]&"&; &myConn.Open&(&)&; &file://打开数据链接,得到一个数据集 &OleDbDataAdapter&myCommand&=&new&OleDbDataAdapter&(&strCom&,&myConn&)&; &file://创建一个&DataSet对象 &myDataSet&=&new&DataSet&(&)&; &file://得到自己的DataSet对象 &myCommand.Fill&(&myDataSet&,&"[Sheet1$]"&)&; &file://关闭此数据链接 &myConn.Close&(&)&; &} &private&void&InitializeComponent&(&) &{ &DataGrid1&=&new&DataGrid&(&)&; &button1&=&new&Button&(&)&; &SuspendLayout&(&)&; &DataGrid1.Name&=&"DataGrid1"; &DataGrid1.Size&=&new&System.Drawing.Size&(&400&,&200&)&; &button1.Location&=&new&System.Drawing.Point&(&124&,&240&)&; &button1.Name&=&"button1"&; &button1.TabIndex&=&1&; &button1.Text&=&"读取数据"&; &button1.Size&=&new&System.Drawing.Size&(84&,&24&)&; &button1.Click&+=&new&System.EventHandler&(&this.button1_Click&)&; &this.AutoScaleBaseSize&=&new&System.Drawing.Size&(&6&,&14&)&; &this.ClientSize&=&new&System.Drawing.Size&(&400&,&280&)&; &this.Controls.Add&(&button1&)&; &this.Controls.Add&(&DataGrid1&)&; &this.Name&=&"Form1"&; &this.Text&=&"读取Excle表格中的数据,并用DataGrid显示出来!"&; &this.ResumeLayout&(&false&)&; &} &private&void&button1_Click&(&object&sender&,&System.EventArgs&e&) &{ &DataGrid1.DataMember=&"[Sheet1$]"&; &DataGrid1.DataSource&=&myDataSet&; &} &static&void&Main&(&) &{ &Application.Run&(&new&Form1&(&)&)&; &} &}&
下图是程序编译后,运行结果:
图01:用Visual C#读取"c:\sample.xls"的运行界面
(4).总结:
以上只是读取了Excel表格中"Sheet1"中的数据,对于其他"Sheet"中的内容,可以参照读取"Sheet1"中的程序,只作一点修改就可以了,譬如要读取"Sheet2"中的内容,只需要把"Read.cs"程序中的"Sheet1$"改成"Sheet2$"就可以了。
三.Visual C#的Excel表格,并在Excel表格中存储数据:
在Visual C#中调用Excel表格,并不像读取Excel表格中的数据那么容易了,因为在Visual C#中调用Excel表格要使用到Excel的COM组件。如果你安装Office套件在"C"盘,那么在"C:\Program Files\Microsoft Office\Office"可以找到这个COM组件"EXCEL9.OLB",在《Visual C#如何使用Active X组件》一文中,这些COM组件都是非受管代码的,要在Visual C#中使用这些非受管代码的COM组件,就必须把他们转换成受管代码的类库。所以在用Visual C#调用Excel表格之前,必须完成从COM组件的非受管代码到受管代码的类库的转换。
(1).非受管代码COM组件转换成受管代码的类库:
首先把COM组件"EXCEL9.OLB"拷贝到C盘的根目录下,然后输入下列命令:
tlbimp excel9.olb
这样在C盘的根目录下面就产生了三个DLL文件:"Excel.dll"、"Office.dll"、"VBIDE.dll"。在产生了上面的三个文件后,这种转换就成功完成了。在下面的程序中,就可以利用这转换好的三个类库编写和Excel表格相关的各种操作了。
(2).Visual C#打开Excel表格:
在"Excel.dll"中定义了一个命名空间"Excel",在差命名空间中封装了一个类"Application",这个类和启动Excel表格有非常重要的关系,在Visual C#中,只需要下列三行代码就可以完成打开Excel表格的工作,具体如下:Excel.Application&excel&=&new&Excel.Application&(&)&; &excel.Application.Workbooks.Add&(&true&)&; &excel.Visible&=&true&;&&
但此时的Excel表格是一个空的表格,没有任何内容,下面就来介绍如何往Excel表格中输入数据。
(3).往Excel表格中输入数据:
在命名空间"Excel"中,还定义了一个类"Cell",这个类所代表的就是Excel表格中的一个下单元。通过给差"Cell"赋值,从而实现往Excel表格中输入相应的数据,下列代码功能是打开Excel表格,并且往表格输入一些数据。Excel.Application&excel&=&new&Excel.Application&(&)&; &excel.Application.Workbooks.Add&(&true&)&; &excel.Cells[&1&,&1&]&=&"第一行第一列"&; &excel.Cells[&1&,&2&]&=&"第一行第二列"&; &excel.Cells[&2&,&1&]&=&"第二行第一列"&; &excel.Cells[&2&,&2&]&=&"第二行第二列"&; &excel.Cells[&3&,&1&]&=&"第三行第一列"&; &excel.Cells[&3&,&2&]&=&"第三行第二列"&; &excel.Visible&=&true&;&&
(4). Visual C#调用Excel表格,并在Excel表格中存储数据的程序代码(Excel.cs):
了解了上面的这些知识,得到完成上述功能的程序代码就显得比较容易了,具体如下:using&System&; &using&System.Drawing&; &using&System.Collections&; &using&System.ComponentModel&; &using&System.Windows.Forms&; &using&System.Data&; &using&System.Data.SqlClient&; &public&class&Form1&:&Form &{ &private&Button&button1&; &private&System.ComponentModel.Container&components&=&null&; &public&Form1&(&) &{ &file:&InitializeComponent&(&)&; &} &file:&protected&override&void&Dispose&(&bool&disposing&) &{ &if&(&disposing&) &{ &if&(&components&!=&null&) &{ &components.Dispose&(&)&; &} &} &base.Dispose(&disposing&)&; &} &private&void&InitializeComponent&(&) &{ &button1&=&new&Button&(&)&; &SuspendLayout&(&)&; &button1.Location&=&new&System.Drawing.Point&(&32&,&72&)&; &button1.Name&=&"button1"&; &button1.Size&=&new&System.Drawing.Size&(&100&,&30&)&; &button1.TabIndex&=&0&; &button1.Text&=&"调用Excel文件!"&; &button1.Click&+=&new&System.EventHandler&(&button1_Click&)&; &AutoScaleBaseSize&=&new&System.Drawing.Size&(&5&,&13&)&; &this.ClientSize&=&new&System.Drawing.Size&(&292&,&273&)&; &this.Controls.Add&(&button1&)&; &this.Name&=&"Form1"&; &this.Text&=&"如何用Visual&C#调用Excel表格!"&; &this.ResumeLayout&(&false&)&; &} &static&void&Main&(&) &{ &Application.Run&(&new&Form1&(&)&)&; &} &private&void&button1_Click&(&object&sender&,&System.EventArgs&e&) &{ &Excel.Application&excel&=&new&Excel.Application&(&)&; &excel.Application.Workbooks.Add&(&true&)&; &excel.Cells[&1&,&1&]&=&"第一行第一列"&; &excel.Cells[&1&,&2&]&=&"第一行第二列"&; &excel.Cells[&2&,&1&]&=&"第二行第一列"&; &excel.Cells[&2&,&2&]&=&"第二行第二列"&; &excel.Cells[&3&,&1&]&=&"第三行第一列"&; &excel.Cells[&3&,&2&]&=&"第三行第二列"&; &excel.Visible&=&true&; &} &} &&
(5).编译源程序和程序运行界面:
在经过了下列命令编译后:
Csc.exe /r:system.dll /r:system.windows.forms.dll /r:system.drawing.dll /r:excel.dll /r:office.dll /r:vbide.dll excel.cs
就可以得到"Excel.exe",运行后界面如下:
图02:Visual C#调用Excel表格,并存储数据的程序运行界面
四.Visual C#处理Office套件中的其他成员程序:
本文虽然只介绍了Visual C#在处理Excel表格中经常遇到的一些问题的解决方法,但其实对Office套件的其他成员也有很强的借鉴意义,譬如Visual C#来处理Word文档,在调用Word文档的时候,必须先完成COM组件从非受管代码到受管代码的转换,Word的COM组件位"MSWORD9.OLB",经过转换后也会产生三个DLL文件,但分别是"Word.dll"、"Office.dll"、"VBIDE.dll"。其实在Visual C#中调用Word,也非常容易。只需要把调用Excel表格中的代码换成调用Word的代码就可以了,具体如下:Word.Application&word&=&new&Word.Application&(&)&; &word.Application.Visible&=&true&;&
不信你试一下,看看是否达到你的要求。对于针对Word的其他的操作,总体来说和对Excel表格的操作相类似。由于针对Word只是一个文档,程序对Word进行的操作是比较少的,所以就不一一介绍了。
五.C#的Excel编程技巧总结:
本文介绍Visual C#来处理Excel表格的几种最常遇到的情况,虽然针对的只是Excel表格,但对其他Office套件中的成员也具有十分的借鉴意义。【编辑推荐】
【责任编辑: TEL:(010)】
大家都在看猜你喜欢
头条热点头条关注热点
24H热文一周话题本月最赞
讲师:153379人学习过
讲师:785413人学习过
讲师:17686人学习过
精选博文论坛热帖下载排行
本书是根据全国计算机技术与软件专业资格(水平)考试“网络工程师级考试大纲”编写的考试辅导用书。全书主体按考试大纲的章节编排,分上、...
订阅51CTO邮刊价格从低到高
价格从高到低
相关推荐词
[{"chanpin":"tmall","mobileUrl":"https://m.tmall.com/mblist/cp_NTc0ZXhj.html","pcUrl":"https://www.tmall.com/mlist/cp_NTc0ZXhj.html","word":"574exc"},{"chanpin":"tmall","mobileUrl":"https://m.tmall.com/mblist/cp_ZXhjMjUw.html","pcUrl":"https://www.tmall.com/mlist/cp_ZXhjMjUw.html","word":"exc250"},{"chanpin":"tmall","mobileUrl":"https://m.tmall.com/mblist/cp_ytCzoWV4Yw.html","pcUrl":"https://www.tmall.com/mlist/cp_ytCzoWV4Yw.html","word":"市场exc"},{"chanpin":"tmall","mobileUrl":"https://m.tmall.com/mblist/cp_v-K05mV4Yw.html","pcUrl":"https://www.tmall.com/mlist/cp_v-K05mV4Yw.html","word":"库存exc"},{"chanpin":"tmall","mobileUrl":"https://m.tmall.com/mblist/cp_ZXhjMTRjZTkwMHU.html","pcUrl":"https://www.tmall.com/mlist/cp_ZXhjMTRjZTkwMHU.html","word":"exc14ce900u"},{"chanpin":"tmall","mobileUrl":"https://m.tmall.com/mblist/cp_ZXhjMjRjZzkwMHU.html","pcUrl":"https://www.tmall.com/mlist/cp_ZXhjMjRjZzkwMHU.html","word":"exc24cg900u"},{"chanpin":"tmall","mobileUrl":"https://m.tmall.com/mblist/cp_ZXhjMjRjZTkwMHU.html","pcUrl":"https://www.tmall.com/mlist/cp_ZXhjMjRjZTkwMHU.html","word":"exc24ce900u"}]EXCEL编程语句有那些啊!_百度知道
EXCEL编程语句有那些啊!
我有更好的答案
如何操作Excel文件全面控制 Excel首先创建 Excel 对象,使用ComObj:Dim ExcelID as Excel.ApplicationSet ExcelID as new Excel.Application1) 显示当前窗口:ExcelID.Visible := T2) 更改 Excel 标题栏:ExcelID.Caption := '应用程序调用 Microsoft Excel';3) 添加新工作簿:ExcelID.WorkBooks.A4) 打开已存在的工作簿:ExcelID.WorkBooks.Open( 'C:\Excel\Demo.xls' );5) 设置第2个工作表为活动工作表:ExcelID.WorkSheets[2].A 或 ExcelID.WorkSheets[ 'Sheet2' ].A6) 给单元格赋值:ExcelID.Cells[1,4].Value := '第一行第四列';7) 设置指定列的宽度(单位:字符个数),以第一列为例:ExcelID.ActiveSheet.Columns[1].ColumnsWidth := 5;8) 设置指定行的高度(单位:磅)(1磅=0.035厘米),以第二行为例:ExcelID.ActiveSheet.Rows[2].RowHeight := 1/0.035; // 1厘米9) 在第8行之前插入分页符:ExcelID.WorkSheets[1].Rows[8].PageBreak := 1;10) 在第8列之前删除分页符:ExcelID.ActiveSheet.Columns[4].PageBreak := 0;11) 指定边框线宽度:ExcelID.ActiveSheet.Range[ 'B3:D4' ].Borders[2].Weight := 3;1-左 2-右 3-顶 4-底 5-斜( \ ) 6-斜( / )12) 清除第一行第四列单元格公式:ExcelID.ActiveSheet.Cells[1,4].ClearC13) 设置第一行字体属性:ExcelID.ActiveSheet.Rows[1].Font.Name := '隶书';ExcelID.ActiveSheet.Rows[1].Font.Color := clBExcelID.ActiveSheet.Rows[1].Font.Bold := TExcelID.ActiveSheet.Rows[1].Font.UnderLine := T14) 进行页面设置:a.页眉:ExcelID.ActiveSheet.PageSetup.CenterHeader := '报表演示';b.页脚:ExcelID.ActiveSheet.PageSetup.CenterFooter := '第&P页';c.页眉到顶端边距2cm:ExcelID.ActiveSheet.PageSetup.HeaderMargin := 2/0.035;d.页脚到底端边距3cm:ExcelID.ActiveSheet.PageSetup.HeaderMargin := 3/0.035;e.顶边距2cm:ExcelID.ActiveSheet.PageSetup.TopMargin := 2/0.035;f.底边距2cm:ExcelID.ActiveSheet.PageSetup.BottomMargin := 2/0.035;g.左边距2cm:ExcelID.ActiveSheet.PageSetup.LeftMargin := 2/0.035;h.右边距2cm:ExcelID.ActiveSheet.PageSetup.RightMargin := 2/0.035;i.页面水平居中:ExcelID.ActiveSheet.PageSetup.CenterHorizontally := 2/0.035;j.页面垂直居中:ExcelID.ActiveSheet.PageSetup.CenterVertically := 2/0.035;k.打印单元格网线:ExcelID.ActiveSheet.PageSetup.PrintGridLines := T15) 拷贝操作:a.拷贝整个工作表:ExcelID.ActiveSheet.Used.Range.Cb.拷贝指定区域:ExcelID.ActiveSheet.Range[ 'A1:E2' ].Cc.从A1位置开始粘贴:ExcelID.ActiveSheet.Range.[ 'A1' ].PasteSd.从文件尾部开始粘贴:ExcelID.ActiveSheet.Range.PasteS16) 插入一行或一列:a. ExcelID.ActiveSheet.Rows[2].Ib. ExcelID.ActiveSheet.Columns[1].I17) 删除一行或一列:a. ExcelID.ActiveSheet.Rows[2].Db. ExcelID.ActiveSheet.Columns[1].D18) 打印预览工作表:ExcelID.ActiveSheet.PrintP19) 打印输出工作表:ExcelID.ActiveSheet.PrintO20) 工作表保存:If not ExcelID.ActiveWorkBook.Saved thenExcelID.ActiveSheet.PrintPreviewEnd if21) 工作表另存为:ExcelID.SaveAs( 'C:\Excel\Demo1.xls' );22) 放弃存盘:ExcelID.ActiveWorkBook.Saved := T23) 关闭工作簿:ExcelID.WorkBooks.C24) 退出 Excel:ExcelID.Q25) 设置工作表密码:ExcelID.ActiveSheet.Protect &123&, DrawingObjects:=True, Contents:=True, Scenarios:=True26) EXCEL的显示方式为最大化ExcelID.Application.WindowState = xlMaximized 27) 工作薄显示方式为最大化ExcelID.ActiveWindow.WindowState = xlMaximized 28) 设置打开默认工作薄数量ExcelID.SheetsInNewWorkbook = 329) '关闭时是否提示保存(true 保存;false 不保存)ExcelID.DisplayAlerts = False 30) 设置拆分窗口,及固定行位置ExcelID.ActiveWindow.SplitRow = 1ExcelID.ActiveWindow.FreezePanes = True31) 设置打印时固定打印内容ExcelID.ActiveSheet.PageSetup.PrintTitleRows = &$1:$1& 32) 设置打印标题ExcelID.ActiveSheet.PageSetup.PrintTitleColumns = && 33) 设置显示方式(分页方式显示)ExcelID.ActiveWindow.View = xlPageBreakPreview 34) 设置显示比例ExcelID.ActiveWindow.Zoom = 100 35) 让Excel 响应 DDE 请求Ex.Application.IgnoreRemoteRequests = False
去学习一下VBA就明白了,很简单.
为您推荐:
其他类似问题
您可能关注的内容
excel的相关知识
换一换
回答问题,赢新手礼包
个人、企业类
违法有害信息,请在下方选择后提交
色情、暴力
我们会通过消息、邮箱等方式尽快将举报结果通知您。通过本文及配套示例源码你可以更加灵活的控制Excel表格文件,其中包括创建新Excel文件、写入表格数据、读取表格数据(包括对原建Excel文件自已手工添加的行、列数据的准确读取),删除已有Excel表格,对表格中指定行、列、单元格进行查询、插入、替换等操作,同时还可以将生成的Excel文件转换为按指定分隔符分隔的其它文本格式的文件。下面是把此方法用VC6编写的示例程序运行效果:
基础实现方法同上篇文章《直接通过ODBC读、写Excel表格文件》相同,都是通过ODBC来把Excel表格文件当成数据库文件来进行读、写等操作,所以在Excel表格文件中写入的行头名必须是唯一的(不要重名,相当于数据库中的ID值)。本文中对Excel文件的操作都被封装进一个类CSpreadSheet中,通过它我们可以非常简便的实现各种Excel表格数据操作,并且可以对该类进行扩充来满足自己的需求。
一、 包含Excel文件操作类头文件
1.#include "CSpreadSheet.h"
二、 新建Excel文件,并写入默认数据
02.CSpreadSheet SS("c:\\Test.xls", "TestSheet");
04.CStringArray sampleArray, testR
06.SS.BeginTransaction();
09.sampleArray.RemoveAll();
10.sampleArray.Add("姓名");
11.sampleArray.Add("年龄");
12.SS.AddHeaders(sampleArray);
15.CString strName[] = {"徐景周","徐志慧","郭徽","牛英俊","朱小鹏"};
16.CString strAge[]& = {"27","23","28","27","26"};
17.for(int i = 0; i & sizeof(strName)/sizeof(CString); i++)
19.&&&&sampleArray.RemoveAll();
20.&&&&sampleArray.Add(strName[i]);
21.&&&&sampleArray.Add(strAge[i]);
22.&&&&SS.AddRow(sampleArray);
25.SS.Commit();
三、 读取Excel文件数据
01.CSpreadSheet SS("c:\\Test.xls", "TestSheet");
03.CStringArray Rows, C
06.m_AccessList.ResetContent();
07.for (int i = 1; i &= SS.GetTotalRows(); i++)
10.&&&&SS.ReadRow(Rows, i);
11.&&&&CString strContents = "";
12.&&&&for (int j = 1; j &= Rows.GetSize(); j++)
14.&&&&&&&&if(j == 1)
15.&&&&&&&&&&&&strContents = Rows.GetAt(j-1);
16.&&&&&&&&else
17.&&&&&&&&&&&&strContents = strContents +& " --& " + Rows.GetAt(j-1);
20.&&&&m_AccessList.AddString(strContents);
四、 对已存在Excel表格数据进行添加、插入、替换操作
02.for (int k = 1; k &= 2; k++)
04.&&&&testRow.Add("Test");
07.SS.AddRow(testRow);&&&&
08.SS.AddRow(testRow, 2);&&&&&
09.SS.AddRow(testRow, 6, true);&&&
10.SS.AddCell("徐景周", 1,2);&&&
12.SS.Commit();&&&
五、 对已存在Excel表格数据进行行、列、单元格查询
001.void CExcelAccessDlg::OnQuery()&
003.&&&&CSpreadSheet SS("c:\\Test.xls", "TestSheet");
005.&&&&CStringArray Rows, C
006.&&&&CString tempString = "";
008.&&&&UpdateData();
010.&&&&if(m_strRow == "" && m_strColumn == "")&&&&&&&&
012.&&&&&&&&AfxMessageBox("行号、列号不能同时为空!");
013.&&&&&&&&return;
014.&&&&}&&&&
015.&&&&else if(m_strRow == "" && m_strColumn != "")&&&
017.&&&&&&&&int iColumn = atoi(m_strColumn);
018.&&&&&&&&int iCols = SS.GetTotalColumns();
019.&&&&&&&&if(iColumn & iCols)&
020.&&&&&&&&{
021.&&&&&&&&&&&&CS
022.&&&&&&&&&&&&str.Format("表中总列数为: %d, ", iCols);
023.&&&&&&&&&&&&AfxMessageBox(str + " 查询列数大于Excel表中总列数,请重新输入!");
024.&&&&&&&&&&&&return;
025.&&&&&&&&}
027.&&&&&&&&
028.&&&&&&&&if(!SS.ReadColumn(Column, iColumn))
029.&&&&&&&&{
030.&&&&&&&&&&&&AfxMessageBox(SS.GetLastError());
031.&&&&&&&&&&&&return;
032.&&&&&&&&}
034.&&&&&&&&CString tmpS
035.&&&&&&&&for (int i = 0; i & Column.GetSize(); i++)
036.&&&&&&&&{
037.&&&&&&&&&&&&tmpStr.Format("行号: %d, 列号: %d ,内容: %s\n", i+1,iColumn,Column.GetAt(i));
038.&&&&&&&&&&&&tempString += tmpS
039.&&&&&&&&}
040.&&&&&&&&&&
041.&&&&&&&&AfxMessageBox(tempString);
043.&&&&else if(m_strRow != "" && m_strColumn == "")&&&&
045.&&&&&&&&int iRow = atoi(m_strRow);
046.&&&&&&&&int iRows = SS.GetTotalRows();
047.&&&&&&&&&&
048.&&&&&&&&if(iRow & iRows)
049.&&&&&&&&{
050.&&&&&&&&&&&&CS
051.&&&&&&&&&&&&str.Format("表中总行数为: %d, ", iRows);
052.&&&&&&&&&&&&AfxMessageBox(str + " 查询行数大于Excel表中总行数,请重新输入!");
053.&&&&&&&&&&&&return;
054.&&&&&&&&}
056.&&&&&&&&
057.&&&&&&&&if(!SS.ReadRow(Rows, iRow))
058.&&&&&&&&{
059.&&&&&&&&&&&&AfxMessageBox(SS.GetLastError());
060.&&&&&&&&&&&&return;
061.&&&&&&&&}
063.&&&&&&&&CString tmpS
064.&&&&&&&&for (int i = 0; i & Rows.GetSize(); i++)
065.&&&&&&&&{
066.&&&&&&&&&&&&tmpStr.Format("行号: %d, 列号: %d ,内容: %s\n", iRow, i+1, Rows.GetAt(i));
067.&&&&&&&&&&&&tempString += tmpS
068.&&&&&&&&}
070.&&&&&&&&AfxMessageBox(tempString);
072.&&&&else if(m_strRow != "" && m_strColumn != "")&&&&
074.&&&&&&&&int iRow = atoi(m_strRow), iColumn = atoi(m_strColumn);
075.&&&&&&&&int iRows = SS.GetTotalRows(), iCols = SS.GetTotalColumns();&
076.&&&&&&&&&&
077.&&&&&&&&if(iColumn & iCols)&&&&&&&&&&&&
078.&&&&&&&&{
079.&&&&&&&&&&&&CS
080.&&&&&&&&&&&&str.Format("表中总列数为: %d, ", iCols);
081.&&&&&&&&&&&&AfxMessageBox(str + " 查询列数大于Excel表中总列数,请重新输入!");
082.&&&&&&&&&&&&return;
083.&&&&&&&&}
084.&&&&&&&&else if(iRow & iRows)
085.&&&&&&&&{
086.&&&&&&&&&&&&CS
087.&&&&&&&&&&&&str.Format("表中总行数为: %d, ", iRows);
088.&&&&&&&&&&&&AfxMessageBox(str + " 查询行数大于Excel表中总行数,请重新输入!");
089.&&&&&&&&&&&&return;
090.&&&&&&&&}
092.&&&&&&&&
093.&&&&&&&&if(!SS.ReadCell(tempString, iColumn, iRow))
094.&&&&&&&&{
095.&&&&&&&&&&&&AfxMessageBox(SS.GetLastError());
096.&&&&&&&&&&&&return;
097.&&&&&&&&}
099.&&&&&&&&CS
100.&&&&&&&&str.Format("行号: %d, 列号: %d ,内容: %s", iRow,iColumn,tempString);
101.&&&&&&&&AfxMessageBox(str);
103.&&&&&&
六、 将存在的Excel转换另存为指定分隔的文本文件
2.SS.Convert(";");
七、 删除Excel中表格
1.SS. DeleteSheet();&&&&&&&&&&&
2.SS. DeleteSheet(" TestSheet ");&
八、 获取Excel中总行数、总列数、当前行
1.int iCols = SS.GetTotalColumns();&&
2.int iRows = SS.GetTotalRows();&&&
3.int iCurRow = SS.GetCurrentRow();
九、 获取行头数据
01.CStringArray rowH
02.SS.GetFieldNames(rowHeader);
03.CString tmpS
04.for (int i = 0; i & rowHeader.GetSize(); i++)
06.&&&&&&&&tmpStr.Format("行号: %d, 列号: %d ,内容: %s\n", 1, i+1, rowHeader.GetAt(i));
07.&&&&&&&&tempString += tmpS
09.AfxMessageBox(tempString);
最后,如果想知道详细实现细节的话,可以在下载示例源码后,仔细查看源码既可(内有详细注释)。
&linker : &
阅读(...) 评论() &

我要回帖

更多关于 excel工作表怎么做 的文章

 

随机推荐