各位,    我在ASP中用Provider=Microsoft.Jet.OOEDB;Datasource=c:\MyFolder\MyWorkbook.CSV;Extended Properties='Text;FMT=Delimited;HDR=YES';来读CSV文件,该文件其中有一栏用notepad打开时是0020031,但ASP读出来时却是20031,前面00不见了,谁能告诉我什么原因呢?

解决方案 »

  1.   

    用filestream 打开不会有这样的问题拉
      

  2.   

    "Provider=Microsoft.Jet.OLEDB.4.0;Data Source=C:\MyExcel.xls;Extended Properties=""Excel 8.0;HDR=Yes;IMEX=1""" 
    "HDR=Yes;" indicates that the first row contains columnnames, not data
    "IMEX=1;" tells the driver to always read "intermixed" data columns as text
    TIP! SQL syntax: "SELECT * FROM [sheet1$]" - i.e. worksheet name followed by a "$" and wrapped in "[" "]" brackets.其中的IMEX=1指示把数据都做为字符串来读取.
      

  3.   

    解决办法:
    Test.asp如下:<%
    str = "Provider=Microsoft.Jet.OLEDB.4.0;Extended Properties='text;HDR=Yes;FMT=Delimited';Data Source="& Server.Mappath(".") & "\"
    Set cn = Server.CreateObject("ADODB.Connection")
    cn.Open str
    Set rs = cn.Execute("select * from MyWorkbook.CSV")
    While Not rs.EOF
    Response.Write rs(0) & "<br>"
    rs.MoveNext
    Wend
    %>
    MyWorkbook.CSV如下:
    mxh,孟宪会
    0001,002
    0330,004将schema.ini放在当前文件夹下
    内容如下[MyWorkbook.CSV]
    ColNameHeader=True
    Format=CSVDelimited
    Col1=mxh Text
    Col2=孟宪会 Text注意里面的字段名字设置
      

  4.   

    这些CSV文件是其他公司的EDI文件发过来的,我们不好要求他们改格式,且文件名是会变的.是要Upload上Server的,这样的话schema.ini里面的内容不好定义哦.str 这样定义也不行吧.
      

  5.   

    还有其他方法吗?因为在同一个文件夹里放有多个CSV文件,这样的话schema.ini就不好定义吧.str也就定义不了了吧.
      

  6.   

    在连接字符串中这样设置可以啊:IMEX=1