我的excel文件为text类型,用右键记事本打开为text类型,可以看到完整数据,所有这种文件用OleDbConnection对象打不开,所有导入不了数据库,导入会抛出,文件不是预期类型错误
 一个标准的excel文件用右键打开应该是乱码的
 我知道一种方式就是另存为这个文件,将其转换为标准excel文件
 但是软件给用户不可能每次都叫用户转换一次吧,那还不得给骂死
 我现在想不用手动转换就能导入
 我知道一个方式可以链接,就是用文件流
 但是这个流读取出来的数据是所有数据的字符串
 要怎么将其每行每列填充给dataset不知道怎么处理 有知道这个问题怎么处理的给细心说说
万分感谢

解决方案 »

  1.   

    +1 
    excel有个通用格式就是csv
      

  2.   

      我不知道它是什么格式
    总之后缀也是.xls
    看上去就是一个excel文件
    如果是csv格式怎么转
      

  3.   

    应该是CSV文件,你就以文本文件的方式读好了啊!
    sr = new StreamReader(TXTPath, System.Text.Encoding.GetEncoding("GB2312"));
                    if (sr.EndOfStream)
                    {
                        return;
                    }
                    while (!sr.EndOfStream)
                    {
                        //将上传文件数据插入到零时表中
                        pLineContent = sr.ReadLine();            pLineContent.Substring的方法去分出来每个字段应该就可以了!
    如果是CSV文件的话,直接以“,”分割好了,SPILIT 就可以了!
      

  4.   

    我遇到过一次xml格式的.xls文件导入问题,这样转换的,请高手指教private string XmlChangeXls(string filename)
            {
                object missing = System.Reflection.Missing.Value;
                Microsoft.Office.Interop.Excel.Application excel = new Microsoft.Office.Interop.Excel.Application();
                excel.Visible = false;
                Microsoft.Office.Interop.Excel.Workbooks oBooks = excel.Workbooks;
                oBooks.Open(filename, missing, missing, missing, missing, missing, missing, missing, missing, missing, missing, missing, missing, missing, missing);
                Microsoft.Office.Interop.Excel.Workbook oBook = excel.ActiveWorkbook;
                string newfilename = filename.Substring(0, filename.LastIndexOf('.')) + "-B.xls";
                oBook.SaveAs(newfilename, XlFileFormat.xlExcel9795, missing, missing, missing, missing, XlSaveAsAccessMode.xlNoChange, missing, missing, missing, missing, missing);
                
                excel.DisplayAlerts = false;
                oBook.Close(false, missing, false);
                System.Runtime.InteropServices.Marshal.ReleaseComObject(oBook);
                oBook = null;            System.Runtime.InteropServices.Marshal.ReleaseComObject(oBooks);
                oBooks = null;            excel.Quit();
                System.Runtime.InteropServices.Marshal.ReleaseComObject(excel);
                excel = null;
                System.GC.Collect();
                return newfilename;
            }