大家帮帮忙,看看是为什么呀
我在想在动态库里面完成写EXCEL的动做,现在不知道为什么报Invalid pointer operation.
现在是代码
uses
ShareMem,SysUtils,Classes,DBTables,Variants,ComObj;
{$R *.res}
procedure CopyDbDataToExcel(Const lQry:TQuery);
var
iCount, jCount: Integer;
XLApp: Variant;
Sheet: Variant;
Range : variant;
filename : String;
lQry1 : TQuery;
begin
lQry1 := lQry;
if not VarIsEmpty(XLApp) then
begin
XLApp.DisplayAlerts := False;
XLApp.Quit;
VarClear(XLApp);
end;
filename := 'F:\aaa.xls';
try
XLApp := CreateOleObject('Excel.Application');
except
Exit;
end;
XLApp.WorkBooks.Add;
XLApp.SheetsInNewWorkbook := 1;
XLApp.WorkBooks[1].WorkSheets[1].Name := '4443';
Sheet := XLApp.Workbooks[1].WorkSheets['4443'];
if not lQry1.Active then
begin
lQry1.Open;
Exit;
end;
lQry.first;
// for iCount := 0 to lQry.FieldCount - 1 do
// Sheet.Cells[1, iCount + 1] :=lQry. ;
jCount := 1;
try
while not lQry1.Eof do
begin
for iCount := 0 to lQry.FieldCount - 1 do
begin
Sheet.Cells[jCount + 1, iCount + 1] :=lQry1.Fields[iCount].AsString ;
if lQry1.Fields[iCount].AsString='是' then
begin
Range := Sheet.Cells[jCount + 1, iCount + 1];
Range.Interior.ColorIndex:=39;
end;
end;
Inc(jCount);
lQry1.Next;
end;
// Sheet:= unassigned;
// Range.Quit;
// Range := unassigned;
XlApp.Visible := True;
// XLApp.WorkBooks[1].saveas(filename);
// XLApp.Workbooks[1].close;
// XLApp.quit;
// XLApp:=unassigned;
// Sheet.quit;
Except
end;
end;
现在是代码
uses
ShareMem,SysUtils,Classes,DBTables,Variants,ComObj;
{$R *.res}
procedure CopyDbDataToExcel(Const lQry:TQuery);
var
iCount, jCount: Integer;
XLApp: Variant;
Sheet: Variant;
Range : variant;
filename : String;
lQry1 : TQuery;
begin
lQry1 := lQry;
if not VarIsEmpty(XLApp) then
begin
XLApp.DisplayAlerts := False;
XLApp.Quit;
VarClear(XLApp);
end;
filename := 'F:\aaa.xls';
try
XLApp := CreateOleObject('Excel.Application');
except
Exit;
end;
XLApp.WorkBooks.Add;
XLApp.SheetsInNewWorkbook := 1;
XLApp.WorkBooks[1].WorkSheets[1].Name := '4443';
Sheet := XLApp.Workbooks[1].WorkSheets['4443'];
if not lQry1.Active then
begin
lQry1.Open;
Exit;
end;
lQry.first;
// for iCount := 0 to lQry.FieldCount - 1 do
// Sheet.Cells[1, iCount + 1] :=lQry. ;
jCount := 1;
try
while not lQry1.Eof do
begin
for iCount := 0 to lQry.FieldCount - 1 do
begin
Sheet.Cells[jCount + 1, iCount + 1] :=lQry1.Fields[iCount].AsString ;
if lQry1.Fields[iCount].AsString='是' then
begin
Range := Sheet.Cells[jCount + 1, iCount + 1];
Range.Interior.ColorIndex:=39;
end;
end;
Inc(jCount);
lQry1.Next;
end;
// Sheet:= unassigned;
// Range.Quit;
// Range := unassigned;
XlApp.Visible := True;
// XLApp.WorkBooks[1].saveas(filename);
// XLApp.Workbooks[1].close;
// XLApp.quit;
// XLApp:=unassigned;
// Sheet.quit;
Except
end;
end;
...全文
相关推荐
authware我的作品
我做的拼图游戏,有一些问题,为什么分数不会变啊,清高手帮帮忙,我马上要交了
仿师兄帮帮忙
【标题】"仿师兄帮帮忙"是一个基于.NET技术构建的网页应用项目,旨在模仿已有的“师兄帮帮忙”服务。这个项目采用了三层架构设计,即表现层、业务逻辑层和数据访问层,以实现良好的代码组织和模块化。
师兄帮帮忙:接地气的校园社交网.docx
《师兄帮帮忙:接地气的校园社交网络》“师兄帮帮忙”是一个独具特色的校园社交平台,它巧妙地将“互助”这一概念融入到大学生的日常生活中。
清华博士停学创办“师兄帮帮忙”社交网站.docx
像“师兄帮帮忙”这样的平台,可以增强校园内的凝聚力,促进不同学校的交流,并可能形成新的校园文化。9.
学校生产实习小组项目,“约会帮帮忙”系统,基于Servlet+JSP.zip
"约会帮帮忙"系统是一个典型的Java Web应用,它利用Servlet和JSP技术构建,结合了MySQL数据库进行数据存储。


数据库相关

