为什么excel单元格无法赋值为字符串?(100分)

L

ljx

Unregistered / Unconfirmed
GUEST, unregistred user!
我用同一段程序,原来可以把access的值全部以字符串形式赋值为excel的单元格,
可重新装系统后就不行了。然后把数值以浮点数形式赋值就可以了,但access的字符
串字段还是无法赋给excel单元格,请问大家怎么办啊?我的部分原程序如下:
inc(j);
Value:=ADOQuery2.Fields[j].AsDateTime;
ExcelApp.Cells[i,j+1].Value:=Value;
for j:=3 to ADOQuery2.FieldCount-2 do
begin
Value:=ADOQuery2.Fields[j].AsFloat;
ExcelApp.Cells[i,j+1].Value:=Value;//
end;
j:=ADOQuery2.FieldCount-1;
Value:=ADOQuery2.Fields[j].AsString;
ExcelApp.Cells[i,j+1].Value:=Value; //这里赋值不行
ADOQuery2.Next;
 
ExcelWorksheet1.Cells.Item[i, j+1]:= ADOQuery2.Fields[j].AsString;
;
 
linsb,你的方法没有用的,只能用于office97,2000还是得用我的方法,但赋值都不行的。
 
ole:
ExcelApp.Cells(i,j+1):=ADOQuery2.Fields[j].AsString;
 
linsb兄,还是不行啊,只要是字符串就不行
 
下面的代码是通过的:
procedure TForm1.Button1Click(Sender: TObject);
var
MSExcelsFileName: string;
i: integer;
begin
MSExcelsFileName := sDir + '/ex.xls';
try
MSExcel := createOleObject('Excel.Application');
workBook := CreateOleObject('Excel.Sheet');
MSExcel.visible := true;
except
showmessage('你的机器没有安装MS Excel');
exit;
end;
try
//新建一个MSExcelS文件,并将数据库数据写入,最后关闭它');
workBook := MSExcel.workBooks.add;
ProgressBar1.Visible := true;
Query1.Close;
Query1.SQL.Clear;
Query1.SQL.Add('Select * From aaa');
if Query1.Prepared = False then Query1.Prepare;
query1.open;
query1.First;
query1.open;
query1.First;
MSExcel.cells(2, 1) := '工号';
MSExcel.cells(2, 2) := '姓名';
MSExcel.cells(2, 3) := '单位';
MSExcel.cells(2, 4) := '地址';
for i := 1 to query1.RecordCount do
begin
MSExcel.cells(2 + i, 1) := query1.FieldByName('no').asstring;
MSExcel.cells(2 + i, 2) := query1.FieldByName('name').asstring;
MSExcel.cells(2 + i, 3) := query1.FieldByName('dw').asstring;
MSExcel.cells(2 + i, 4) := query1.FieldByName('dzh').asinteger;
query1.Next
end;
WorkBook.saveas(MSExcelsFileName);
WorkBook.close;
MSExcel.Quit;
//释放VARIANT变量
MSExcel := unassigned;
except
showMessage('不能正确操作Excel文件.可能是该文件已被其他程序打开');
end;
end;
 
我搞定了,谢谢
 
顶部