OLE实例代码
Ole_Db
[@rmtuser =] 'rmtuser'
当 useself 为 false 时,用来连接 rmtsrvname 的用户名,rmtuser 的数据类型为 sysname,默认设置为 NULL。
[@rmtpassword =] 'rmtpassword'
与 rmtuser 相关的密码。rmtpassword 的数据类型为 sysname,默认设置为 NULL。
[ , [ @rmtpassword = ] 'rmtpassword' ]
Байду номын сангаас
参数
[@rmtsrvname =] 'rmtsrvname'
是应用登录映射的链接服务器名称。rmtsrvname 的数据类型为 sysname,没有默认设置。
[@useself =] 'useself'
决定用于连接到远程服务器的登录名称。useself 的数据类型为 varchar(8),默认设置为 TRUE。true 值指定 SQL Server 验证的登录使用其自己的凭据以连接到 rmtsrvname,而忽略 rmtuser 和 rmtpassword 参数。false 值指定 rmtuser 和 rmtpassword 参数用来连接到特定 locallogin 的 rmtsrvname。如果 rmtuser 和 rmtpassword 也设置为 NULL,则连接链接服务器不需使用任何登录或密码。对于 Windows NT 身份验证登录而言,useself 为 true 则无效,除非 Microsoft Windows NT® 环境支持安全帐户委托,并且,提供程序支持 Windows 身份验证(此时不再需要创建值为 true 的映射,不过创建仍然有效)。
oledb 连接sqlserver用法
oledb 连接sqlserver用法OLE DB连接SQL Server的用法OLE DB(Object Linking and Embedding, Database)是一种用于连接到数据库的组件对象模型(COM)。
它提供了一种通用的数据访问接口,使开发人员可以使用各种数据库管理系统(DBMS)与应用程序进行交互。
使用OLE DB连接SQL Server,您可以执行以下步骤:1. 引用相关命名空间:首先,在您的代码中引用`System.Data.OleDb`命名空间。
2. 创建连接字符串:使用OLE DB连接字符串指定要连接的SQL Server实例的相关信息。
连接字符串包括数据提供程序(Provider)的名称、服务器名称或IP地址、数据库名称以及可选的用户名和密码。
例如,连接字符串可以类似于:```string connectionString = "Provider=SQLOLEDB;Data Source=ServerName;Initial Catalog=DatabaseName;User ID=Username;Password=Password;";```3. 创建连接对象:使用`OleDbConnection`类创建一个连接到SQL Server的对象,并传入连接字符串作为参数。
例如:```OleDbConnection connection = new OleDbConnection(connectionString);```4. 打开连接:使用连接对象的`Open()`方法打开与SQL Server的连接。
例如:```connection.Open();```5. 执行SQL查询:使用连接对象创建一个`OleDbCommand`对象,并设置其`CommandText`属性为要执行的SQL查询语句。
然后,使用`ExecuteReader()`方法执行查询,并返回一个`OleDbDataReader`对象,以便对结果进行读取和处理。
最全的OLE操作Excel的完整代码
最全的OLE操作Excel的完整代码#include<Utilcls.h>#include "Excel_2K_SRVR.h"//#include "ComObj.hpp"/*-------------------------------------------------//谨慎的思考310032649原创文章//目前真正最全的OLE操作Excel的完整代码//版本:2007.01.15.01//C++Builder专家组原创文章//转载请保留本版权信息,谢谢合作--------------------------------------------------/void __fastcall TForm1::Button1Click(TObject *Sender){AnsiString str1="asvasd";//要入库的数据Variant ex,newxls,sh;try{ex=CreateOleObject("Excel.Application");//启动Excelex.OlePropertySet("Visible",(Variant)true);//使Excel启动后可见//ex.OlePropertyGet("WorkBooks").OleProcedure("ADD");//新建一新工作薄(加上这一句,会有两个Excel窗口,同时关闭)//ex.OlePropertySet("Visible",(Variant)false);//使Excel启动后不可见//ex.OlePropertySet("Windowstate",1);//Excel启动后窗体状态:1(xlNormal)正常显示(Excel上次关闭时是什么状态,启动后就是什么状态),2(xlMinimized)最小化(不是缩小到任务栏),3(xlMaximized)最大化newxls=(ex.OlePropertyGet("Workbooks")).OleFunction("Add");//①//使用ExcelApp的Exec方法新建一有3个工作表的默认工作薄//newxls=(ex.OlePropertyGet("Workbooks")).OleFunction("Add",1);//创建有单个工作表的工作簿//newxls=ex.OlePropertyGet("workbooks").OleFunction("open", "c:\\123.xls");//打开已存在的文件,使用时可将上面关于新建①的那行屏蔽掉sh=newxls.OlePropertyGet("ActiveSheet");}catch(...){ShowMessage("启动Excel出错,可能沒有安裝Excel");return;}//Excel的警告提示:sh.OlePropertyGet("Application").OlePropertySet("DisplayAlerts",false);//关闭Excel的警告提示,如提示保存等//sh.OlePropertyGet("Application").OlePropertySet("DisplayAlerts",true);//打开Excel的警告提示,如提示保存等//选择工作表://newxls.OlePropertyGet("Sheets", 2).OleProcedure("Select");//选择第二工作表//sh = newxls.OlePropertyGet("ActiveSheet");//选择第二工作表//重命名工作表://sh.OlePropertySet("Name", "Sheet的新名字");//重命名当前工作表//取得工作表总数:int nSheetCount=newxls.OlePropertyGet("Sheets").OlePropertyGet("Count");//取得工作表总数Edit1->Text=nSheetCount;/*-------------------------------------------------//目前真正最全的OLE操作Excel的完整代码//版本:2007.01.15.01//C++Builder专家组原创文章//转载请保留本版权信息,谢谢合作--------------------------------------------------///新建工作表并重命名:try{Variant bef1,aft1;int count=ex.OlePropertyGet("sheets").OlePropertyGet("count");aft1=ex.OlePropertyGet("sheets",count);ex.OlePropertyGet("sheets").OleProcedure("Add",bef1.NoParam() , aft1);sh = ex.OlePropertyGet("ActiveSheet");sh.OlePropertySet("Name","增加的sheet的名字");//名字不能重复}catch(...){//ShowMessage ("There's something wrong with your excel file./nPlease check it!");}//指定状态栏显示的文本://ex.OlePropertySet ("StatusBar","您好,请您稍等。
使用VC++操作Excel文件(OLE)
使用VC++操作Excel文件(OLE)使用VC++操作Excel文件 - [程序设计]2008-07-17博主ps:在上看到的这篇文章,但是由于这篇文章写得比较早,有些地方在office2007的情况下稍有出入。
所以改动了一点。
本文档适用于:•Microsoft Foundation Classes (MFC), Microsoft Visual C++, 32-bit Editions, version 6.0 以上•Microsoft OLE 库第一步:建立一个自动化工程1.启动VC 6.0,打开新建对话框,新建一个MFC AppWizard(exe)工程,这里工程明设置为TestExcel。
2.进入MFC 应用程序向导,选择基本对话框,直接点击完成:3.打开MFC ClassWizard窗口(查看—>建立类向导),选择Automation,单击Add Class按钮,选择From a type library...,弹出文件选择对话框,之后定位到Microsoft Office的安装目录(通常为C:\Program Files\Microsoft Office\Office12),选择EXCEL.exe,确定后,弹出Confirm Classes窗口,选择列表中的所有类,单击OK 按钮。
注意原来文章里说的文件名是EXCEL9.OLB,因安装的Office版本不同而有所差异,EXCEL9.OLB对应的是Microsoft Office 2000,微软命名方式为Excel+数字的形式,Office版本越高,数字越大。
在我用的office2007里直接用的exe文件4.返回编辑器,查看工程文件,可发现多了EXCEL.H及EXCEL.CPP两个文件。
5.打开stdafx.h头文件确保包含如下头文件:#include <afxdisp.h>#include "excel9.h"6.打开TestExcel.cpp文件,修改CTestExcelApp::InitInstance(),加入如下代码:BOOL CTestExcelApp::InitInstance(){if( !AfxOleInit() ){AfxMessageBox("初始化Ole出错!");return FALSE;}AfxEnableControlContainer();............return FALSE;}为保证编译时不产生重复定义错误,打开excel9.h文件,在文件开始位置加入如下代码:#if !defined _HEAD_FILE_EXCEL9_#define _HEAD_FILE_EXCEL9_相应的,在文件末尾加入:#endif到此,OLE自动化工程建立完成。
VFP控制EXCEL的方法
VFP控制EXCEL的方法VFP(Visual FoxPro)是一种面向对象的数据库管理系统,可以通过它来控制和操作Excel。
下面将详细介绍一些使用VFP控制Excel的方法。
1. 建立与Excel的连接:首先需要建立与Excel的连接,可以使用OLE(Object Linking and Embedding)技术来实现。
通过OLE创建一个Excel应用程序实例,然后使用该实例进行操作。
```foxprooExcel = CREATEOBJECT("Excel.Application") && 创建Excel应用程序实例oWorkbook = oExcel.Workbooks.Add( && 新建一个工作簿oWorksheet = oWorkbook.WorkSheets(1) && 获取第一个工作表```2. 设置Excel对象的属性:Excel应用程序有很多属性可以设置,比如设置显示/隐藏工作窗口、设置自动保存等。
例如,以下代码将Excel应用程序窗口设置为不可见:```foxprooExcel.Visible = .F. && 不显示Excel窗口```3. 操作Excel工作表:通过Excel应用程序实例的oWorksheet对象,可以对Excel工作表进行操作。
比如,设置单元格的值、获取单元格内容、设置字体、设置单元格格式等。
例如,以下代码将A1单元格的值设置为“Hello World!”:```foxprooWorksheet.Range("A1").Value = "Hello World!"```4. 操作Excel图表:可以使用VFP控制Excel创建和操作图表。
例如,以下代码创建一个柱状图:```foxprooChart = oWorksheet.Shapes.AddChart2(240, xlColumnClustered) && 创建一个柱状图oChart.Select( && 选中图表oChart.SetSourceData(oWorksheet.Range("A1:B10")) && 设置图表数据范围```5. 保存Excel文件:VFP可以通过Excel应用程序实例的oWorkbook对象来保存Excel文件。
c++ olefile解析
要解析OLE文件,你需要了解OLE(Object Linking and Embedding)文件格式。
OLE文件是一种二进制文件格式,用于存储复合文档,例如Word文档、Excel工作簿或PowerPoint演示文稿。
C++中可以使用第三方库来解析OLE文件,例如libole(开源)或Microsoft的COM库。
下面是一个使用libole库解析OLE文件的示例代码:c复制代码#include<iostream>#include<libole/ole.h>int main() {OleFile* oleFile = OleFile_Open("example.docx");if (oleFile) {std::cout << "OLE file opened successfully." << std::endl;OleFileEntry* entry = OleFile_RootEntry(oleFile);if (entry) {std::cout << "Root directory found." << std::endl;OleStream* stream = OleFile_OpenStream(entry, "WordDocument", STGM_READ);if (stream) {std::cout << "Word document stream opened successfully." << std::endl;// Read and process Word document data...OleStream_Close(stream);}OleFileEntry_Release(entry);}OleFile_Close(oleFile);} else {std::cout << "Failed to open OLE file." << std::endl;}return0;}在上面的示例中,我们首先使用OleFile_Open函数打开OLE文件。
用Perl操作Excel文档的实例代码
⽤Perl操作Excel⽂档的实例代码在Linux或者Unix上操作(⽣成)Excel,CPAN上提供了Spreadsheet::WriteExcel 和 Spreadsheet::ParseExcel这两个模块。
下⾯就来看看 Spreadsheet::WriteExcel 和 Spreadsheet::ParseExcel的使⽤⽅法。
⾸先,要在服务器上安装相应的模块。
安装 Excel 模块的 PPM 命令复制代码代码如下:ppm> install OLE::Storage_Liteppm> install Spreadsheet::ParseExcelppm> install Spreadsheet::WriteExcel来看两个例⼦吧。
例1:读取excel⽂件复制代码代码如下:#!/usr/bin/perl -wuse strict;use Spreadsheet::ParseExcel;my $parser = Spreadsheet::ParseExcel->new();my $workbook = $parser->Parse('Book1.xls');for my $worksheet ( $workbook->worksheets() ) {my ( $row_min, $row_max ) = $worksheet->row_range();my ( $col_min, $col_max ) = $worksheet->col_range();for my $row ( $row_min .. $row_max ) {for my $col ( $col_min .. $col_max ) {my $cell = $worksheet->get_cell( $row, $col );next unless $cell;print "Row, Col = ($row, $col)\n";print "Value = ", $cell->value(), "\n";print "Unformatted = ", $cell->unformatted(), "\n";print "\n";}}}例2:⽣成EXCEL⽂件复制代码代码如下:#!/usr/bin/perl -wuse Spreadsheet::WriteExcel;# 创建⼀个新的EXCEL⽂件my $workbook = Spreadsheet::WriteExcel->new('test.xls');# 添加⼀个⼯作表$worksheet = $workbook->add_worksheet();# 新建⼀个样式$format = $workbook->add_format(); # Add a format$format->set_bold();#设置字体为粗体$format->set_color('red');#设置单元格前景⾊为红⾊$format->set_align('center');#设置单元格居中#使⽤⾏号及列号,向单元格写⼊⼀个格式化和末格式化的字符串$col = $row = 0;$worksheet->write($row, $col, 'Hi Excel!', $format); $worksheet->write(1, $col, 'Hi Excel!');# 使⽤单元格名称(例:A1),向单元格中写⼀个数字。
delphi数据导出到wps表格
delphi数据导出到wps表格delphi 导出数据到WPS表格的⽅法和导出到Excel⽅法雷同,都涉及使⽤Ole。
导出到Wps表格时需要创建这样的Ole组件实例:varetapp:olevariant;myworkbook: OleVariant; //定义⾦⼭表格的⼯作簿对象etapp:=createoleobject('et.application');//启动wps表格现在⽹上有⼀段现成的代码,它就是实现将⼀个表格⾥的数据导出到 wps的电⼦表格⽂档中。
具体代码如下:procedure TfrmMain.Button10Click(Sender: TObject);vari,row,column,j:integer;etapp:olevariant;myworkbook: OleVariant; //定义⾦⼭表格的⼯作簿对象beginetapp:=createoleobject('et.application');//启动wps表格etApp.Visible := true;if dbgrid1.DataSource.DataSet.RecordCount =0 then exit;etapp.Workbooks.Close;myworkbook :=etapp.Workbooks.add;myworkbook.WorkSheets['sheet1'].Activate;column:=1;for j:=0 to dbgrid1.FieldCount-1 dobeginIF dbgrid1.Columns[j].Visible =true thenbeginmyworkbook.worksheets['sheet1'].cells[1,column].value:=dbgrid1.columns.Items[j].Title.caption ;column:=column+1;end;end;row:=2;dbgrid1.DataSource.DataSet.First;While Not (dbgrid1.DataSource.DataSet.Eof) dobegincolumn:=1;for i:=0 to dbgrid1.Columns.Count-1 dobeginIF dbgrid1.Columns[I].Visible =true thenbeginmyworkbook.worksheets['sheet1'].cells[row,column].value:=dbgrid1.Columns[i].Field.AsString ;column:=column+1;end;end;dbgrid1.DataSource.DataSet.Next;row:=row+1;end;showmessage('导出完毕,请在wps表格中进⾏编辑、排版、打印等操作!');end;。
SAP日记-ABAP导出EXCEL的两种方式(OLE,DOI)
SAP日记——ABAP导出EXCEL的两种方法一、OLEABAP通过OLE的方式导出EXCEL,由于数据时一条一条的生成,速度较慢,不适合内表数据较多的场景使用,但是其实现起来比较简单。
REPORT ZTEST1.TABLES: ZWYM. “自定义的一张表TYPE-POOLS:SLIS,ole2. “需要用到OLE2DATA: excel TYPE ole2_object,workbook TYPE ole2_object,sheet TYPE ole2_object,cell TYPE ole2_object.DATA: application TYPE ole2_object,book TYPE ole2_object,books TYPE ole2_object.DATA: ole_book TYPE ole2_object.DATA: FILENAME(100) TYPE C VALUE 'D:\data\test.xls'. “定义文件导出的路径"DATA: GT_ITAB LIKE TABLE OF ZWYM WITH HEADER LINE.DATA:BEGIN OF GT_ITAB OCCURS 0, “定义内表INCLUDE STRUCTURE ZWYM.END OF GT_ITAB.SELECTION-SCREEN:BEGIN OF BLOCK B1 WITH FRAME TITLE TEXT-001. “查询条件SELECT-OPTIONS:S_MATNR FOR ZWYM-MATNR.SELECTION-SCREEN:END OF BLOCK B1.START-OF-SELECTION.PERFORM GET_DATA.END-OF-SELECTION.PERFORM gen_excel.FORM GET_DATA.SELECT * INTO CORRESPONDING FIELDS OF TABLE GT_ITAB FROM ZWYM W HERE MATNR IN S_MATNR.ENDFORM. “GET_DATA.FORM gen_excel.CREATE OBJECT excel 'EXCEL.APPLICATION'.IF sy-subrc NE 0 .MESSAGE '不能生成EXCEL对象,检查系统是否安装 MS EXCEL。
OLE自动化技术
邵 淑霞 ( 大庆职业学院, 黑龙江 大庆 1 6 3 2 5 5 )
摘 要 : 0 L E 使得 w i n d o w s 应用程序之 间能够协作 , 使 不同的应用程 序分享数据 。 本 文通 过在V i s u a 1 B a s i c 应 用程 序中调用O f f i c e 应用程 序对 象 来说 明0 L E 自 动化的实现 。
格式为: S e t < 对象变量> = N o t h i n g 的程序设计语言开发应用程 序需要协同工作时, 这些应用程 序 内存。 下面通过一个实例来具体说明0 L E 自动化技术。 需要使用共同的语言接 口进行通信, 这种语言就是O L E 。
2 OL E 基本 术语
2 . 1 O L E 对 象 利用0 L E 技 术 ,一 个W i n d 0 wS 应 用程 序 可 以启 动 其 他
’创建W o r d 文档实例
W o r d d o c . D o c u m e n t s . A d d . S e l e c t ’
在一个W o r d 文档 中嵌 入_个 电子表格 ,  ̄W o r d 就是客户程序 ,
E x c e l 就是服务程序。
创建新文档, 并选定
W i n d o w s 应用程序、 显示和控制数据, 并在创建该数据 的应用程 序 中对它进行编辑 。 这些数据可以是一段文字、 一个电子表格、
一
实例: 在V i s u a l B a s i c 窗体 中显示W o r d 艺术字, 如图所示 。 两个按钮 【 改变】( 名称为C m d E f f e c t ) 【 退出】( 名称为C m d g x i t ) 。 在程序 中需要 建一个O L E 自动化 对象 用于操 作W o r d 文
C# 插入、编辑、读取Word OLE
C# 操作Word 中的OLE——插入、编辑、读取OLE概述OLE,Object Linking and Embedding,即对象连接与嵌入。
我们在设计程序时,OLE可以用来创建复合文档,把文字、声音、图像、表格、应用程序等类型的信息组合在一起,在Word 中,我们可以通过OLE来实现以上要素信息的组合。
下面的示例中将介绍如何通过C# 来操作Word中的OLE,示例内容包含以下要点:●插入OLE到Word●编辑Word中的OLE●读取Word中的OLE使用工具●Spire.Doc for .NET注:下载安装该类库,在编辑代码时,注意在程序中添加引用Spire.Doc.dll(dll文件可在安装路径下的Bin文件夹中获取)示例代码(供参考)【示例1】插入OLE到WordC#using Spire.Doc;using Spire.Doc.Documents;using Spire.Doc.Fields;using System.Drawing;namespace InsertOLE_Doc{class Program{static void Main(string[] args){//实例化一个Document类对象Document doc = new Document();//向文档中添加一个Section对象,并添加段落Section sec = doc.AddSection();Paragraph p = sec.AddParagraph();//实例化一个DocPicture类对象,加载图片DocPicture picture = new DocPicture(doc);Image image = Image.FromFile(@"chart1.png");picture.LoadImage(image);//在文档中插入一个工作表, OleLinkType 枚举值控制该OLE是链接还是嵌入DocOleObject obj = p.AppendOleObject(@"testfile.xlsx", picture, OleLinkType.Link);//DocOleObject obj = p.AppendOleObject(@"testfile.xlsx", picture, OleLinkType.Embed);//保存并打开文档doc.SaveToFile("添加OLE.docx");System.Diagnostics.Process.Start("添加OLE.docx");}}}完成代码后,调试运行程序,生成文档。
excel 控件 常用代码
excel 控件常用代码Excel控件是一个常用于.NET应用程序的控件,它允许开发人员将Excel的功能集成到Windows窗体应用程序中。
以下是Excel控件的一些常用代码示例:1. 打开Excel工作簿```c#xlApp.Workbooks.Open(@"C:\example.xlsx");```2. 获取工作表中的单元格值```c#string cellValue = xlWorksheet.Range["A1"].Text;```3. 设置单元格的值```c#xlWorksheet.Range["A1"].Value = "Hello World";```4. 保存工作簿```c#xlWorkbook.Save();xlWorkbook.Close();```5. 创建新的工作表```c#xlWorkbook.Worksheets.Add();```6. 删除工作表```c#xlWorkbook.Worksheets.Remove(xlWorksheet);```7. 自动筛选数据```c#xlWorksheet.AutoFilterMode = true;xlWorksheet.Range["A1"].AutoFilter(1, "John"); // 按第一列筛选出包含"John"的行```这些是一些常用的Excel控件代码示例,可以帮助您在Windows 窗体应用程序中实现Excel的基本功能。
请注意,这些代码示例假定您已经正确地添加了Excel控件到您的项目中,并且已经使用正确的对象名称引用了它。
C++BUILDER中OLE操作EXCEL的文件
C++BUILDER中OLE操作EXCEL的文件用OLE操作EXCEL文件一、首先在函数最上方加入以下头文件(很重要)#include "stdio.h"#include "Excel_2K_SRVR.h"在头文件中的private下定义:Variant Ex,Wb,Sheet,ERange,EBorders;二、要先创建和设置以下函数。
AnsiString ExcelFileName=GetCurrentDir()+"\\table.xls";Ex=Variant::CreateObject("Excel.Application");//创建应用对象Ex.OlePropertySet("Visible",false);//使Excel程序不可见Wb=Ex.OlePropertyGet("WorkBooks").OleFunction("Add"); Wb.OleProcedure("SaveAs",ExcelFileName.c_str());//根据路径保存Wb.OleProcedure("Close");//关闭工作簿Ex.OleFunction("Quit");//关闭Excel(以上函数可实现对EXCEL的创建然后保存关闭)三、要对所创建的EXCEL文件进行错误检测try{Ex=Variant::CreateObject("Excel.Application");}catch(…){Application->MessageBox("无法启动Excel","错误",MB_ICONSTOP|MB_OK);return;}四、当第三中的try中有创建EXCEL对象,就有对它的属性也就是显示或隐藏进行设置和打开,如下:Ex.OlePropertySet("Visible",false);Ex.OlePropertyGet("WorkBooks").OleProcedure("Open",Exce lFile Name.c_str());//打开指定的Excel表格文件。
SAPABAPOLE操作EXCEL小结
SAPABAPOLE操作EXCEL小结SAP ABAP OLE(Object Linking and Embedding)是一种用于在SAP 系统中操作Microsoft Office应用程序的技术。
在ABAP程序中,可以使用ABAP的OLE接口,通过使用ABAP中的方法和函数来操作Excel文档。
使用SAP ABAP OLE操作Excel文档涉及到以下主要步骤:1.引用OLE对象:在开始操作Excel之前,需要声明和引用Excel对象。
这可以通过使用类CL_GUI_FRONTEND_SERVICES的方法GET_FILE_NAME_ON_F4或GET_FILE_NAME_BY_DIALOG等来完成。
声明和引用Excel对象可以使用类CL_OLE2_OBJECT。
2. 创建Excel对象:使用OLE接口可以实例化一个Excel应用程序对象。
创建Excel对象的语句如下:```CREATE OBJECT excel 'Excel.Application'.```3. 打开Excel文档:打开现有的Excel文档或创建一个新的Excel文档。
打开Excel文档的语句如下:```excel->Workbooks->Open('C:\Path\to\file.xlsx').```4. 操作Excel文档:通过使用Excel对象和工作簿对象,可以执行各种操作,如读取和写入单元格的值,设置单元格格式,创建和设置图表等。
以下是一些操作的示例:-读取单元格的值:```data(cell_value) = excel->ActiveSheet->Cells(1, 1)->Value.```-写入单元格的值:```excel->ActiveSheet->Cells(1, 1)->Value = 'Data'.```-设置单元格格式:```data(style) = excel->ActiveSheet->Cells(1, 1)->Style.style->Font->Bold = abap_true.```-创建图表:```data(chart) = excel->ActiveSheet->ChartObjects(->Add(100, 100, 300, 300).chart->Chart->Type = xlColumnClustered.chart->Chart->SetSourceData(excel->ActiveSheet->Range('A1:B5')).```5. 保存和关闭Excel文档:在操作完成后,需要保存修改并关闭Excel文档。
用OLEOBJECT变量连接EXCEL
用OLEOBJECT变量连接EXCEL,或用DDE通道连接EXCEL.后逐行写入某个EXCEL文档的SHEET 中.iole_object_Excel.Application.Workbooks.Add() //新增工作薄以下的Workbooks(1)也可使用ActiveWorkbook替换iole_object_Excel.Application.Workbooks(1).Sheets(i).Name = "AA" //设置第一个工作薄的第I个SHEET名称iole_object_Excel.Application.Workbooks(1).Worksheets("sheet1").Activate //激活第一个工作薄名为"SHEET1"的页iole_object_Excel.Application.Workbooks(1).Sheets.Add() //新增一个SHEET页iole_object_Excel.Application.Workbooks(1).Sheets(i).Select //选择第I个SHEET页使其成为当前活动页iole_object_Excel.Application.Workbooks(1).ActiveSheet.Move(iole_object_Excel.A pplication.Workbooks(1).Sheets(iole_object_Excel.Application.Workbooks(1).Sheet s.Count)) // 将当前SHEET页移动到最后iole_object_Excel.Application.Workbooks(1).ActiveSheet.Range("A1").FormulaR1C1 ="W"//设置当前活动页的A1单元格的值。
ABAP-通过OLE操作OFFICE
ABAP--通过OLE操作OFFICE(代码)本代码是通过OLE技术操作EXCEL,将SAP的数据填写到本地EXCEL中,Office 运行在SAP的GUI界面外,注意红色代码。
REPORT ZRSDEMO01 NO STANDARD PAGE HEADING.* this report demonstrates how to send some ABAP data to an* EXCEL sheet using OLE automation.*必须包含INCLUDE OLE2INCL.* handles for OLE objects*申明相关的OFFICE的OLE对象DATA: H_EXCEL TYPE OLE2_OBJECT, " Excel objectH_MAPL TYPE OLE2_OBJECT, " list of workbooksH_MAP TYPE OLE2_OBJECT, " workbookH_ZL TYPE OLE2_OBJECT, " cellH_F TYPE OLE2_OBJECT. " fontTABLES: SPFLI.DATA H TYPE I.* table of flightsDATA: IT_SPFLI LIKE SPFLI OCCURS 10 WITH HEADER LINE.*&---------------------------------------------------------------------**& Event START-OF-SELECTION*&---------------------------------------------------------------------*START-OF-SELECTION.* read flightsSELECT * FROM SPFLI INTO TABLE IT_SPFLI UP TO 10 ROWS.* tell user what is going onCALL FUNCTION 'SAPGUI_PROGRESS_INDICATOR'EXPORTING* PERCENTAGE = 0TEXT = TEXT-007EXCEPTIONSOTHERS = 1.* start Excel(创建对象)CREATE OBJECT H_EXCEL 'EXCEL.APPLICATION'.PERFORM ERR_HDL.*设置office对象是否显示SET PROPERTY OF H_EXCEL 'Visible' = 1.PERFORM ERR_HDL.* tell user what is going onCALL FUNCTION 'SAPGUI_PROGRESS_INDICATOR' EXPORTING* PERCENTAGE = 0TEXT = TEXT-008EXCEPTIONSOTHERS = 1.* get list of workbooks, initially emptyCALL METHOD OF H_EXCEL 'Workbooks' = H_MAPL. PERFORM ERR_HDL.* add a new workbookCALL METHOD OF H_MAPL 'Add' = H_MAP.PERFORM ERR_HDL.* tell user what is going onCALL FUNCTION 'SAPGUI_PROGRESS_INDICATOR' EXPORTING* PERCENTAGE = 0TEXT = TEXT-009EXCEPTIONSOTHERS = 1.* output column headings to active Excel sheetPERFORM FILL_CELL USING 1 1 1 'Flug'(001). PERFORM FILL_CELL USING 1 2 1 'Nr'(002).PERFORM FILL_CELL USING 1 3 1 'Von'(003). PERFORM FILL_CELL USING 1 4 1 'Nach'(004). PERFORM FILL_CELL USING 1 5 1 'Zeit'(005).LOOP AT IT_SPFLI.* copy flights to active EXCEL sheetH = SY-TABIX + 1.PERFORM FILL_CELL USING H 1 0 IT_SPFLI-CARRID. PERFORM FILL_CELL USING H 2 0 IT_SPFLI-CONNID. PERFORM FILL_CELL USING H 3 0 IT_SPFLI-CITYFROM. PERFORM FILL_CELL USING H 4 0 IT_SPFLI-CITYTO. PERFORM FILL_CELL USING H 5 0 IT_SPFLI-DEPTIME. ENDLOOP.* disconnect from Excel*CALL METHOD OF H_EXCEL 'QUIT'.FREE OBJECT H_EXCEL.PERFORM ERR_HDL.*---------------------------------------------------------------------** FORM FILL_CELL **---------------------------------------------------------------------** sets cell at coordinates i,j to value val boldtype bold **---------------------------------------------------------------------*FORM FILL_CELL USING I J BOLD VAL.*get cellCALL METHOD OF H_EXCEL 'Cells' = H_ZL EXPORTING #1 = I #2 = J. PERFORM ERR_HDL.*set cell valueSET PROPERTY OF H_ZL 'Value' = VAL .PERFORM ERR_HDL.*Get cell fontGET PROPERTY OF H_ZL 'Font' = H_F.PERFORM ERR_HDL.*set cell fontSET PROPERTY OF H_F 'Bold' = BOLD .PERFORM ERR_HDL.ENDFORM.*&---------------------------------------------------------------------**& Form ERR_HDL*&---------------------------------------------------------------------** outputs OLE error if any **----------------------------------------------------------------------** --> p1 text* <-- p2 text*----------------------------------------------------------------------*FORM ERR_HDL.IF SY-SUBRC <> 0.WRITE: / 'Fehler bei OLE-Automation:'(010), SY-SUBRC.STOP.ENDIF.ENDFORM. " ERR_HDL。
达梦接口编程实例——OLEDB篇
达梦接口编程实例——OLEDB篇OLE DB是Microsoft通用数据访问策略的重要组成部分。
它允许高效地访问任何数据源,为用户提供了一种统一的方法来访问所有不同种类的数据源,不论是数据库数据源,还是表格文件数据源都可以通过它来查看,而且,它可以在不同的数据源中进行数据转换。
OLE DB的这种灵活性给编程人员带来了极大的方便,客户端的开发人员在进行数据访问时只需把精力集中在很少一些细节上,而不必弄懂大量不同数据库的访问协议。
DM OLE DB Provider是武汉华工达梦数据库公司为使达梦数据库(DM DATABASE,以下简称DM)实现OLE DB数据访问接口,符合一致数据访问标准而自行设计并实现的OLE DB提供者组件程序。
DM OLE DB Provider直接调用DM API编程接口访问DM数据库,OLE DB Consumer程序可以通过DM OLE DB Provider提供的OLE DB接口来访问数据库。
OLE DB Consumer程序既可以是直接调用OLE DB接口的应用程序,也可以是调用OLE DB接口为实际应用提供高层接口的组件程序(例如ADO),如图所示:本文通过DM OLE DB接口连接达梦数据库,用一个实例来分步介绍OLE DB API编程方法。
DM OLE DB编程步骤1).初始化COM环境2).连接数据源3).创建会话,执行命令4).处理结果集5).清除对象1 初始化COM环境由于OLE DB是一个COM接口,所以在使用任何OLE DB对象前要初始化COM环境,可以通过一个简单的调用来实现,如下所示:HERULT hr=CoInitialize(NULL); //初始化COM环境在大多数情况下,最好调用CoGetMalloc函数,获得指向默认的OLE任务内存分配器的指针,如下所示:CoGetMalloc(MEMCTX_TASK,&g_pIMalloc));//获取Imalloc为以后使用2 连接数据源1).创建一个DM OLE DB提供程序实例创建一个DataSource对象,可以通过调用CoCreateInstance方法来直接产生一个DataSource对象, CoCreateInstance方法的句法如下:STDAPI CoCreateInstance( REFCLSID rclsid,LPUNKNOWN pAggInterface,DWORD dwClsContext,REFIID riid,LPVOID* ppInterface);Rclsid 指定要使用的COM对象的类标识符,DM OLE DB的类标识符是CLSID_DM,定义值是{0x83CD9378, 0x328B, 0x45D9, 0x87AD, {0x8F, 0xAA, 0xB3, 0xF0, 0x9E, 0x72}};DM OLEDB Provider的PROGID 是DMOLEDB,可以先通过CLSIDFromProgID函数,将ProgID 求出CLSID。
abap ole 单元格格式
ABAP OLE 单元格格式1. 简介ABAP OLE(Object Linking and Embedding)是一种在SAP系统中通过OLE技术与外部应用程序进行交互的方法。
通过使用ABAP OLE,可以实现与Microsoft Office套件等外部应用程序之间的数据交换和操作。
本文将重点介绍如何使用ABAP OLE来处理单元格格式。
2. 前提条件在开始使用ABAP OLE处理单元格格式之前,需要确保以下条件已满足: - 已安装并配置了Microsoft Office套件(如Excel)。
- 对于Excel文件的读取和写入操作,需要安装并配置Microsoft Excel驱动程序。
3. 使用ABAP OLE设置单元格格式下面是一个示例代码,演示了如何使用ABAP OLE来设置Excel工作簿中的单元格格式:DATA: lo_excel TYPE ole2_object,lo_workbook TYPE ole2_object,lo_sheet TYPE ole2_object,lo_range TYPE ole2_object.* 创建Excel对象CREATE OBJECT lo_excel 'Excel.Application'.* 打开工作簿lo_workbook = lo_excel->Workbooks->Open('<文件路径>').* 激活工作表lo_sheet = lo_workbook->Worksheets(1).lo_sheet->Activate.* 选择要设置格式的单元格范围lo_range = lo_sheet->Range('A1:B5').* 设置字体样式和大小lo_range->Font->Name = 'Arial'.lo_range->Font->Size = 12.* 设置单元格边框lo_range->Borders->LineStyle = 1.lo_range->Borders->Weight = 2.* 设置单元格背景颜色lo_range->Interior->ColorIndex = 6.* 保存并关闭工作簿lo_workbook->Save.lo_workbook->Close(0).* 退出Excel应用程序lo_excel->Quit.上述代码中,我们首先创建了一个Excel对象,并打开了一个工作簿。
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
SELECTION-SCREEN END OF BLOCK BLK01.
*---------------------------------------------------------------------*
MATNR TYPE EKPO-MATNR, "物料号
TXZ01 TYPE EKPO-TXZ01, "物料描述
MEINS TYPE EKPO-MEINS, "单位
MENGE TYPE EKPO-MENGE, "数量
H~EINDT "交货日期
I~LGOBE "库存地点
INTO CORRESPONDING FIELDS OF TABLE IT_DJFTAB
FROM EKKO AS A INNER JOIN
*---------------------------------------------------------------------*
* 創建用戶選擇介面
*---------------------------------------------------------------------*
WAERS TYPE EKKO-WAERS, "币种
INCO1 TYPE EKKO-INCO1, "国贸术语
ZTERM TYPE EKKO-ZTERM, "付款条款
"表体结构
WLT_FIELDCAT-FIELDNAME = 'SEL_BOX'.
WLT_FIELDCAT-TABNAME = 'IT_DJFTAB'.
WLT_FIELDCAT-NO_OUT = ' '.
WLT_FIELDCAT-SELTEXT_L = '选择框 '.
USR21 AS E ON A~ERNAM = E~BNAME INNER JOIN
ADRP AS F ON E~PERSNUMBER = F~PERSNUMBER INNER JOIN
ADRC AS G ON C~ADRNR = G~ADDRNUMBER INNER JOIN
EKET AS H ON B~EBELN = H~EBELN AND B~EBELP = H~EBELP INNER JOIN
T001L AS I ON B~LGORT = I~LGORT AND B~WERKS = I~WERKS
WHERE A~EBELN IN S_EBELN
TELF1 TYPE LFA1-TELF1, "供方电话
FAX_NUMBER TYPE ADRC-FAX_NUMBER, "需方传真
TELTX TYPE LFA1-TELTX, "供方传真
AND B~EBELP IN S_EBELP.
ENDFORM.
FORM GET_ALV.
*---------------------------------------------------------------------*
* 調用系統函數將ALV呈現在介面上,其顯示的內容,為指定的內表
B~TXZ01 "物料描述
B~MEINS "单位
B~MENGE "数量
B~BRTWR "含税金额
B~MWSKZ "税率
B~BANFN "申购单号
SELECTION-SCREEN BEGIN OF BLOCK BLK01 WITH FRAME TITLE TEXT-001. "创建一个选择界面的模块
SELECT-OPTIONS: S_EBELN FOR EKKO-EBELN OBLIGATORY NO INTERVALS NO-EXTENSION .
DATA : GD_REPID LIKE SY-REPID, "
REF_GRID TYPE REF TO CL_GUI_ALV_GRID. "创建一个动态的ALV
*---------------------------------------------------------------------*
B TYPE T001W-NAME1, "需方
C TYPE LFA1-NAME1, "供方
NAME_FIRST TYPE ADRP-NAME_FIRST, "需方联系人
NAME3 TYPE LFA1-NAME3, "供方联系人
* 結構聲明
*---------------------------------------------------------------------*
TYPES: BEGIN OF STUR_DJFTAB ,
SEL_BOX TYPE CHAR1, "创建名为SEL_BOX 引用CHAR1类型
*---------------------------------------------------------------------*
CLEAR: WT_FIELDCAT[]. பைடு நூலகம் "清空工作区内容
CLEAR WLT_FIELDCAT.
WLT_FIELDCAT-CHECKBOX = 'X '. "把这个字段作为复选框输出
REPORT YE_TLH_AND_CE.
TYPE-POOLS: SLIS. "ALV显示使用到的贡献池
TABLES:EKKO,EKPO. "引用这两个表的数据
INCLUDE Z_EXCEL. "这里提示里面包含一个子程序
*---------------------------------------------------------------------*
BRTWR TYPE EKPO-BRTWR, "含税金额
MWSKZ TYPE EKPO-MWSKZ, "税率
BANFN TYPE EKPO-BANFN, "申购单号
EINDT TYPE EKET-EINDT, "交货日期
LGOBE TYPE T001L-LGOBE, "库存地点
END OF STUR_DJFTAB.
DATA : IT_DJFTAB TYPE STANDARD TABLE OF STUR_DJFTAB. "创建一个内表,引用这个结构
DATA : WA_DJFTAB TYPE STUR_DJFTAB. "创建一个工作区,引用和内表一样的结构
DATA : IT_SELECTED TYPE STANDARD TABLE OF STUR_DJFTAB. "创建一个内表,引用同样结构
D~TELF1 "供方电话
D~TELTX "供方传真
F~NAME_FIRST "需方联系人
G~TEL_NUMBER "需方电话
G~FAX_NUMBER "需方传真
"表体取数
B~MATNR "物料号
WT_EVENTS TYPE SLIS_T_EVENT. "直接复制不用更改
DATA: WS_EVENTS LIKE LINE OF WT_EVENTS.
* 定义ALV显示的具体格式
DATA: WLT_FIELDCAT LIKE LINE OF WT_FIELDCAT.
EBELP TYPE EKPO-EBELP, "项目号
EBELN TYPE EKPO-EBELN, "订单号
BEDAT TYPE EKKO-BEDAT, "订单日期
A~ZTERM "付款条约
C~NAME1 AS B "需方
C~STRAS AS C "需方送货地址
D~NAME1 AS D "供方
D~NAME3 "供方联系人
D~STRAS AS F "供方送货地址
* 執行按鈕以後進行的操作
*---------------------------------------------------------------------*
START-OF-SELECTION.
PERFORM GET_DATA.
PERFORM GET_ALV.
FORM GET_DATA.
* ALV层级关系定义
*---------------------------------------------------------------------*
DATA: WT_FIELDCAT TYPE SLIS_T_FIELDCAT_ALV,
WT_LAYOUT TYPE SLIS_LAYOUT_ALV,
D TYPE T001W-STRAS, "需方送货地址
F TYPE LFA1-STRAS, "供方送货地址
TEL_NUMBER TYPE ADRC-TEL_NUMBER, "需方电话
CLEAR IT_DJFTAB[].
SELECT
B~EBELP "采购日期
A~EBELN "采购单号
A~BEDAT "订单日期
A~WAERS "币种
A~INCO1 "国贸术语
EKPO AS B ON A~EBELN = B~EBELN INNER JOIN