hur.cn - 华软网

 热门搜索

excel读取问题

  作者:未知    来源:网络    更新时间:2018/3/3
1.在pb中用oo.Activesheet.cells(1,1).value得出的数据,英文和数字没问题,中文就有乱码,如何解决
2.同上,如果excel中是"1980.01",我如何转换成日期型,好像用date('1980.01')不行。

3.如何读出excel中的图片(图片文件路径)
------华软网友回答------
友情+帮顶!
------华软网友回复------
第二个问题,要想把一个字符串变为date类型的数据,也需要符合一定规范才可以转化的。
date("2005-6-1")这样才可以哦!
------华软网友回复------
给你方法,把excel表格中的数据弄到dw中,呵呵,到dw里面就你想怎么弄就怎么弄了! 

IF GetFileOpenName("选择要导入的文件",ls_path,ls_file, "txt","文本格式(*.txt),*.txt,电子表格(Excel),*.xls,DBF 3(dabase Ⅲ),*.dbf") = 1 THEN
 sle_filename.text=ls_path
 ls_type = 'xls'
 dw_list.CREATE(ls_sql,ls_err)
 
 CHOOSE CASE ls_type
  CASE 'txt'
   ls_targerfile = ls_path
  CASE 'xls','dbf'     
   OLEObject ExcelServer 
   ExcelServer = CREATE OLEObject 
   IF ExcelServer.ConnectToNewObject( "excel.application" ) < 0 THEN
    messagebox("","连接excel失败,检查你的系统是否安装了office,必须安装EXCLE才可以使用该导入功能!")
   ELSE
    lb_delete =TRUE//需要删除临时文件
    ExcelServer.Workbooks.Open(ls_path) 
    ls_targerfile=Left(ls_path,Len(ls_path) - 4) + "_temp.txt"
   excelserver.activeworkbook.saveas(ls_targerfile,3) 
   excelserver.displayalerts=false
     excelserver.displayalerts=true
 ExcelServer.quit() 
    ExcelServer.DisconnectObject() 
    //DESTROY ExcelServer 
   END IF
case else
return
 end choose
else 
return

end if
dw_list.importfile(ls_targerfile,2)
 IF dw_list.RowCount() = 0 THEN 
messagebox("", '待导入数据没有任何记录!')


 ls_sql = SqlCa.SynTaxFromSql(ls_sql,'style(type=grid)',ls_err)
 IF Len(ls_err) >  0 THEN
  IF lb_delete THEN
   FileDelete(ls_targerfile)
  END IF
  messagebox("", '在读取数据时出现问题。发现了一些不应该有的!~n' + ls_err)
 END IF
end if 
//ExcelServer = 
destroy ExcelServer
------华软网友回复------
gz
------华软网友回复------
1、可以先用代码转换成文本格式再读取,那就方便多了---也可参考宏语法


string  ls_tempfile = 'c:\demo.xls'

If Upper(Right(ls_tempfile,3)) = 'XLS' Then

is_textfile = 'c:\temp.txt'
If FileExists(is_textfile) Then FileDelete(is_textfile)
OLEObject ole_excel
ole_excel = Create OLEObject;
If ole_excel.ConnectToNewObject("Excel.Application") = 0 Then
  //连接到Excel
  //关闭警告消息对话框,防止退出Excel时提示
  ole_excel.Application.DisplayAlerts = False
  //打开Excel文件,含路径
  ole_excel.Application.Workbooks.Open(ls_tempfile)
           //把打开的Excel文件另存为Text文件,第二参数表示数据以制表符TAB分隔
  ole_excel.Application.ActiveWorkbook.SaveAs(is_textfile,-4158)
  //退出Excel
  ole_excel.Application.Quit()              
Else
  Messagebox('错误','无法建立与Excel的连接!',StopSign!)
  Destroy ole_excel
End If
End If

//读取文本的代码
.................................................

2、这个参考百合的
3、可以加个超级连接(即路径)----参考VBA宏的语法
------华软网友回复------
对于第3个问题,如果excel是我生成的就可以这样,但是这个Excel是别人做好了,我来接收,如何将图片读出?
------华软网友回复------
接受过来的数据 你也可以转化一下了的
------华软网友回复------
我覺得應該先轉換成HTML格式,可能就不會亂碼了,讀取圖片可能要專門寫一個函數
------华软网友回复------
pb9就没问题,我前天刚做这个功能,很正常。是你的pb版本低      
华软声明:本内容来自网络,如有侵犯您版权请来信指出,本站立即删除。