在intraweb中使用excel好像有问题,不能启用excelapp
sxbug 2017-01-12 12:23:21 先介绍一下我的环境: win10 64位,berlin,office2013.
想实现的功能,先用IWFileUploader上传xls文件,然后在服务器端,打开上传的文件,然后写入数据库。
具体实施:1、IWFileUploader1AsyncUploadCompleted事件中启用
IWFileUploader1.SaveAll(DestPath, Overwrite);
SaveFile := False; //如果前面设置了自动保存, 就取消它
InputFromXls(IWEdit3.text,destpath+fileName);//利用这个函数打开xls文件上传数据到服务器。
2、首先打开xls文件,然后准备写入数据库
ExcelApp:=CreateOleObject('Excel.Application');
WorkBook:=ExcelApp.WorkBooks.Open(loc_file);
ExcelApp.Visible:=False;
ExcelSheetCount:=WorkBook.WorkSheets.Count;
for i:=1 to ExcelSheetCount do begin
WorkBook.WorkSheets[i].Activate;
if (Trim(ExcelApp.Cells[1,1].Value)='') and (Trim(ExcelApp.Cells[2,1].Value)='') then
Break;
with UserSession.UniQuery5 do begin
Close;
SQL.Text:='Select * from tblname‘;
Open;
tempermaxRow:=ExcelApp.ActiveSheet.Usedrange.Rows.count;
if MaxRow<tempermaxRow then
MaxRow:= tempermaxRow+1;
Insert;
for j := 2 to MaxRow do begin //循环读入数据行
Append;
for j1 := 0 to FieldCount - 1 do begin
Fields[j1].Value:= ExcelApp.Cells[j,j1].Value; //在这里,发现:excelapp.cells都是不能访问的
end;
end;
Post;
end;
end;
finally
ExcelApp.ActiveWorkBook.Saved:=True;
。。。。
3、 感觉excelapp,创建有问题,但 ExcelApp.ActiveSheet.Usedrange.Rows.count 有返回值。
请问 是什么原因。谢谢