我用adoquery直接读取execl文件,遇到一个问题。在文件里有些列式有数字又有文字的
例如:
一月份
200
二月份
300但用 while not Excel.Eof do循环读取的时候发现只有数字可以读取得出而汉字就无法读取,我已经将此列已经设置成文本类型啦,但汉字还是无法读取,读取汉字的时候这行是空的,这个问题如何解决呢?望高手解答,谢谢
例如:
一月份
200
二月份
300但用 while not Excel.Eof do循环读取的时候发现只有数字可以读取得出而汉字就无法读取,我已经将此列已经设置成文本类型啦,但汉字还是无法读取,读取汉字的时候这行是空的,这个问题如何解决呢?望高手解答,谢谢
解决方案 »
- 我想改TTimer类名,请教如何改?结贴率100%
- 各位大虾,怎么用delphi实现一个编辑器,带有代码自动补全功能,求助
- 在没有安装EXCEL的机器上,导出XLS的最佳方案。
- 在quickreport中出現下面問題:列印時出現如下問題:invalid blob handle in record buffer.請問這是什麼問題,該如何解決?
- 自定义菜单
- 如何删除AnsiString类型的字符串中的一个字符?
- delphi中“回车”怎么表示?
- 誰有 有光標鍵,回車移動焦點的Tedit之類的控件...........
- 我快疯了
- 如何汉化Inforpower 3000中的对话框
- TcxGrid显示数据,少了一条数据
- 兔子们 节日快乐
/*
OpenDialog1 : TOpenDialog1;
ADOConnection1 : TADOConnection;
//手工连接到Excel时,须将Extended Properties设置为Excel 8.0
ADOQuery1 : TADOQuery;
*/procedure TForm1.BitBtn1Click(Sender: TObject);
Var
sFileName, sTableName : String;
sl : TStringList;
begin
If Not OpenDialog1.Execute Then Exit;
sFileName := OpenDialog1.FileName;
ADOConnection1.Connected := False;
ADOConnection1.ConnectionString := := 'Provider=Microsoft.Jet.OLEDB.4.0;Password="";Data Source=' + sFileName + ';Extended Properties="Excel 8.0;IMEX=1";Persist Security Info=False';
ADOConnection1.Connected := True;
//
sl := TStringList.Create;
ADOConnection1.GetTableNames(sl); //sl是表名列表(Excel中可能有很多个sheet)
//Excel表中可能有很多个sheet,可以循环,本程序只处理了第一个sheet(sl[0])
//for i := 0 to sl.Count-1 Do
//begin
// sTableName := sl[i];
//end;
sTableName := sl[0];
If Pos('$', sTableName)>0 Then sTableName := '[' + sTableName + ']';
ADOQuery1.Close;
ADOQuery1.SQL.Clear;
ADOQuery1.SQL.Text := 'SELECT * FROM ' + sTableName;
ADOQuery1.Open;
sl.Free;
end;
procedure TForm1.Button5Click(Sender: TObject);
var
ExcelApp:Variant;
begin
ExcelApp:=CreateOleObject('Excel.Application');
ExcelApp.workbooks.open(apppath+'LED标签地址.xls');
edt1.Text:=ExcelApp.Cells[2,3];
edt2.Text:=ExcelApp.Cells[3,3];
ExcelApp.quit;
end;循环自己加上试试看。