在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 有返回值。

请问 是什么原因。谢谢
...全文
1013 1 打赏 收藏 转发到动态 举报
写回复
用AI写文章
1 条回复
切换为时间正序
请发表友善的回复…
发表回复
santiaodahan 2017-01-12
  • 打赏
  • 举报
回复
Cells行列序号是从1开始的,而不是0。

1,183

社区成员

发帖
与我相关
我的任务
社区描述
Delphi Windows SDK/API
社区管理员
  • Windows SDK/API社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧