当Excel单元格值为 #Null! 时,读这个单元格就会出错..怎么处理啊?
请指点下,谢谢.
请指点下,谢谢.
解决方案 »
- 图片复制问题
- delphi代码中使用adoquery.prepared;会引发数据库引挚错误?
- delphi 的字符类型的问题,解决了就给分呀,急呀,在线等…………
- 如何验证我用MD5加密的正确性呢?
- 有关调用存储过程的问题
- delphi写的统计字数的软件,请各位高手帮忙修改一下!!谢谢!!
- 各位请问一下:interbase中的blob类型,在操作中如何进行插入,我要插入的是sql文的内容,谢谢
- ***********为什么大家这么清高,连250分都不想拿,那么我这分要仍掉啦!
- 如何判断dbgrid中options的具体属性的状态(在程序中)。比较简单 答对利马结账
- 如何设置超时??求救,急!!!
- 介绍大家一个程序员交流的网站 www.socrazyit.cn
- 请教如何获得服务器的硬盘,主板信息
Excel表格里,单元格A1里的填写的可能是任意字符串,也可能是 #Null!;
我将单元格的值读出来赋值给的s(s: String; s := ExcelApp.Cells[1, 1].Value);
A1值为 #Null! 时就提示错误了,其它字符串则运行正常.
v: Variant;
v := ExcelApp.Cells[1, 1].Value;
if not(VarIsNull(v)) then
s := ExcelApp.Cells[1, 1].Value;
依然出错. 还有,
祝你节日快乐!!!!
var
ExcelApplication1: TExcelApplication;
WorkBk : _WorkBook;
WorkSheet : _WorkSheet;
x,y : integer;
RangeMatrix: Variant;
OpenDialog1: TOpenDialog;
iRE: integer; item_no: String;
item_name: String;
begin
OpenDialog1:=TOpenDialog.Create(nil);
ExcelApplication1:=TExcelApplication.Create(nil);
try
//记得在uses中引入文件EXCEL2000这个单元
OpenDialog1.FileName:='*.csv;*.xls';
if not OpenDialog1.Execute then
begin
exit;
end; try
ExcelApplication1.Connect;
except
Application.Messagebox('连接Excel失败,请重试!','提示',MB_ICONERROR);
exit;
end;
try
ExcelApplication1.Visible[0]:=false;
Excelapplication1.Workbooks.Open(OpenDialog1.FileName,null,null,null,null,null,null,null,null,null,null,null,null,0);
WorkBk := ExcelApplication1.WorkBooks.Item[1];
WorkSheet := WorkBk.WorkSheets.Get_Item(1) as _WorkSheet;
WorkSheet.Cells.SpecialCells(xlCellTypeLastCell,EmptyParam).Activate;
X := Excelapplication1.ActiveCell.Row;
Y := Excelapplication1.ActiveCell.Column;
RangeMatrix := Excelapplication1.Range['A1',Excelapplication1.Cells.Item[X,Y]].Value;
//for iRE:=2 to X do
for iRE:=2 to X do
begin
//从Excel开始取信息
Item_NO := Trim(RangeMatrix[iRE,1]);
item_name := Trim(RangeMatrix[iRE,2]);
Memo1.Lines.Add(item_no+' / '+item_name);
Application.ProcessMessages;
end;
except
messagebox(handle,'出错','提示',MB_ICONERROR);
exit;
end;
finally
ExcelApplication1.Disconnect;
ExcelApplication1.Quit;
ExcelApplication1.Free;
OpenDialog1.Free;
end;
s := ExcelApp.Cells[1, 1].Value);
except
s:='#Null!';
end;
你好!
我做了一段简单的代码,访问也是出错.
请你帮我看看是什么问题:当Excel表格A1所填的是'#Null!'以外的字符串时,可以正常Show出,'#Null!'时提示错误.
uses
Windows, Messages, SysUtils, Classes, Graphics, Controls, Forms, Dialogs,
StdCtrls, Buttons, ComObj, ComCtrls, ExtCtrls, ImgList, fcButton,
ExcelXP, jpeg, Variants;procedure TForm1.Button1Click(Sender: TObject);
var
S: String;
ExcelApp: Variant;
Path: String;
begin
if not OpenDialog1.Execute then
begin
exit;
end;
Path := OpenDialog1.FileName; { 返回選擇的EXCEL文件路徑 }
ExcelApp := CreateOleObject('Excel.Application');
ExcelApp.WorkBooks.Open(Path);
s := ExcelApp.Cells[1, 1].Value;
ExcelApp.WorkBooks.Close;
ExcelApp.Quit;
ShowMessage(s);
end;
procedure TForm1.Button1Click(Sender: TObject);
var
S: String;
ExcelApp: Variant;
Path: String;
begin
if not OpenDialog1.Execute then
begin
exit;
end;
Path := OpenDialog1.FileName; { 返回選擇的EXCEL文件路徑 }
ExcelApp := CreateOleObject('Excel.Application');
ExcelApp.WorkBooks.Open(Path);
try
s := ExcelApp.Cells[1, 1].Value;
except
s:='#Null!';
end;
ExcelApp.WorkBooks.Close;
ExcelApp.Quit;
ShowMessage(s);
end;
你说的也对,我目前就是用这种方法。
如果我只停留在try except就不用上来这里寻求答案了。