-- 获取工作表句柄
i:=ordcom.GetProperty(applicationToken, ’WorkSheets’, 0, WorkSheetToken1);
i:=ordcom.Invoke(WorkSheetToken1, ’Add’, 0, WorkSheetToken);
RETURN i;
END CreateExcelWorkSheet;
FUNCTION setCellValues(RANGE VARCHAR2,data VARCHAR2, TYPE VARCHAR2)
RETURN BINARY_INTEGER IS
BEGIN
ordcom.InitArg();
ordcom.SetArg(RANGE,’BSTR’);
-- 获取Range区句柄,之后将数据写入到指定的单元格
i:=ordcom.GetProperty(WorkSheetToken, ’Range’, 1, RangeToken);
i:=ordcom.SetProperty(RangeToken, ’Value’, data, TYPE);
i:=ordcom.DestroyObject(RangeToken);
RETURN i;
END setCellValues;
FUNCTION setCellValues(RANGE VARCHAR2,data BINARY_INTEGER,TYPE VARCHAR2)
RETURN BINARY_INTEGER IS
BEGIN
ordcom.InitArg();
ordcom.SetArg(RANGE, ’BSTR’);
i:=ordcom.GetProperty(WorkSheetToken, ’Range’, 1, RangeToken);
i:=ordcom.SetProperty(RangeToken, ’Value’, data, type);
i:=ordcom.DestroyObject(RangeToken);
RETURN i;
END setCellValues;
FUNCTION setCellValuesReal(RANGE VARCHAR2,data DOUBLE PRECISION,TYPE VARCHAR2)
RETURN BINARY_INTEGER IS
BEGIN
ordcom.InitArg();
ordcom.SetArg(RANGE, ’BSTR’);
i:=ordcom.GetProperty(WorkSheetToken, ’Range’, 1, RangeToken);
i:=ordcom.SetProperty(RangeToken, ’Value’, data, type);
i:=ordcom.DestroyObject(RangeToken);
RETURN i;
END setCellValuesReal;
FUNCTION setCellValues(RANGE VARCHAR2,data DATE,TYPE VARCHAR2)
RETURN BINARY_INTEGER IS
BEGIN
ordcom.InitArg();
ordcom.SetArg(RANGE, ’BSTR’);
i:=ordcom.GetProperty(WorkSheetToken, ’Range’, 1, RangeToken);
i:=ordcom.SetProperty(RangeToken, ’Value’, data, TYPE);
i:=ordcom.DestroyObject(RangeToken);
![]()
RETURN i;
END setCellColWidth;
FUNCTION setCellMerge(RANGE VARCHAR2,bValues BOOLEAN,TYPE VARCHAR2)
RETURN i;
END setCellValues;
FUNCTION setCellColWidth(RANGE VARCHAR2,width DOUBLE PRECISION,TYPE VARCHAR2)
RETURN BINARY_INTEGER IS
BEGIN
ordcom.InitArg();
ordcom.SetArg(RANGE,’BSTR’);
i:=ordcom.GetProperty(WorkSheetToken,’Range’,1,RangeToken);
i:=ordcom.SetProperty(RangeToken,’ColumnWidth’,width,TYPE);
i:=ordcom.DestroyObject(RangeToken);
RETURN BINARY_INTEGER IS
BEGIN
ordcom.InitArg();
ordcom.SetArg(RANGE,’BSTR’);
i:=ordcom.GetProperty(WorkSheetToken,’Range’,1,RangeToken);
i:=ordcom.SetProperty(RangeToken,’MergeCells’,bValues,’BOOLEAN’);
i:=ordcom.DestroyObject(RangeToken);
RETURN i;
END setCellMerge;
FUNCTION setCellLines(RANGE VARCHAR2,BordersIndex BINARY_INTEGER,
weight BINARY_INTEGER DEFAULT xlThin,TYPE VARCHAR2) RETURN BINARY_INTEGER IS
BEGIN
ordcom.InitArg();
ordcom.SetArg(RANGE,’BSTR’);
i:=ordcom.GetProperty(WorkSheetToken,’Range’,1,RangeToken);
ordcom.InitArg();
ordcom.SetArg(BordersIndex,TYPE); -- 画表格的具体载入参数
i:=ordcom.GetProperty(RangeToken,’Borders’,1,hLines);
i:=ordcom.SetProperty(hLines,’weight’,weight,TYPE);
i:=ordcom.DestroyObject(hLines);
i:=ordcom.DestroyObject(RangeToken);
RETURN i;
END setCellLines;
FUNCTION setCellFont(RANGE VARCHAR2,Property VARCHAR2,fontValues BINARY_INTEGER,TYPE
VARCHAR2) RETURN BINARY_INTEGER IS
BEGIN
ordcom.InitArg();
ordcom.SetArg(RANGE,’BSTR’);
i:=ordcom.GetProperty(WorkSheetToken,’Range’,1,RangeToken);
ordcom.InitArg();
ordcom.SetArg(Property,TYPE);
ordcom.InitArg();
i:=ordcom.GetProperty(WorkSheetToken, ’ChartObjects’, 0, ChartObjectToken);
ordcom.InitArg();
ordcom.SetArg(xpos,’I2’); -- 载入图表对象位置参数
ordcom.SetArg(ypos,’I2’);
ordcom.SetArg(width,’I2’);
ordcom.SetArg(height,’I2’);
i:=ordcom.Invoke(ChartObjectToken, ’Add’, 4, ChartObject1); -- 添加图表
i:=ordcom.GetProperty(ChartObject1, ’Chart’, 0,Chart1Token);
ordcom.InitArg();
ordcom.SetArg(RANGE, ’BSTR’);
i:=ordcom.GetProperty(WorkSheetToken,’Range’, 1, RangeToken); -- 选取区域
ordcom.InitArg();
ordcom.SetArg(RangeToken, ’DISPATCH’);
IF TYPE=’xlPie’ THEN
charttype := -4102;
ELSIF TYPE=’xl3DBar’ THEN
charttype := -4099;
ELSIF TYPE=’xlBar’ THEN
charttype := 2;
ELSIF TYPE=’xl3dLine’ THEN
i:=ordcom.GetProperty(RangeToken,’Font’,0,hLines); -- 获取字体对象
i:=ordcom.SetProperty(hLines,Property,fontValues,TYPE);
i:=ordcom.DestroyObject(hLines);
i:=ordcom.DestroyObject(RangeToken);
RETURN i;
END;
FUNCTION callMethod(RANGE VARCHAR2,MethodName VARCHAR2)
RETURN BINARY_INTEGER IS
reti BINARY_INTEGER := -1;
BEGIN
ordcom.InitArg();
ordcom.SetArg(RANGE,’BSTR’);
i:=ordcom.GetProperty(WorkSheetToken,’Range’,1,RangeToken);
ordcom.InitArg();
i:=ordcom.Invoke(RangeToken,MethodName,0,reti); -- 调用对象的方法
i:=ordcom.DestroyObject(RangeToken);
RETURN reti;
END;
Oracle中使用PL/SQL操作COM对象
0
相关文章
