我从数据从一个页面导出到一个xls里面 然后把这个xls导入到另一个数据库 出现的问题 该怎么解决?

解决方案 »

  1.   

    数据格式错了吧按照数据库里表结构导
    最好存成.csv文件
      

  2.   

    .csv文件
    以逗号还是什么分割的很好能的.
      

  3.   

    aaaaaaa,aaaaaaaaa,11111111111111111
    aaaaaaa,aaaaaaaaa,11111111111111111
    aaaaaaa,aaaaaaaaa,11111111111111111
    aaaaaaa,aaaaaaaaa,11111111111111111
    aaaaaaa,aaaaaaaaa,11111111111111111
    这样试下了.
      

  4.   

    这个你得试,EXCEL可以用这数据的好象.
      

  5.   

    而且从别的地方导出来的是excel  的版本 .  
       我也只能上传excel版本
      

  6.   

       public bool ExportExcel(DataTable myDataTable, string saveFileName)
            {
                try
                {
                    if (saveFileName.IndexOf(":") < 0) return false; //被点了取消                Microsoft.Office.Interop.Excel.Application xlApp = new Microsoft.Office.Interop.Excel.Application();
                    object missing = System.Reflection.Missing.Value;                if (xlApp == null)
                    {
                        MessageBox.Show("无法创建Excel对象,可能您的机子未安装Excel");
                        return false;
                    }
                    Microsoft.Office.Interop.Excel.Workbooks workbooks = xlApp.Workbooks;
                    Microsoft.Office.Interop.Excel.Workbook workbook = workbooks.Add(Microsoft.Office.Interop.Excel.XlWBATemplate.xlWBATWorksheet);
                    Microsoft.Office.Interop.Excel.Worksheet worksheet = (Microsoft.Office.Interop.Excel.Worksheet)workbook.Worksheets[1];            //取得sheet1
                    Microsoft.Office.Interop.Excel.Range range;
                    range = worksheet.Columns;
                    range.HorizontalAlignment = Microsoft.Office.Interop.Excel.XlHAlign.xlHAlignCenter;              //水平对齐设置 
                    range.VerticalAlignment = Microsoft.Office.Interop.Excel.XlVAlign.xlVAlignCenter;                //垂直对齐设置
                    range.ColumnWidth = 15;
                    #region 写入字段
                    worksheet.Cells[1, 1] = "钻石号";
                 //.....
                  worksheet.Cells[1, 21] = "类型外键";
                    #endregion
                    //写入数值
                    for (int r = 0; r < myDataTable.Rows.Count; r++)
                    {
                        
                       worksheet.Cells[r + 2, 1] = myDataTable.Rows[r]["DiamNumber"];  
                      //.........                                
                         worksheet.Cells[r + 2, 21] = myDataTable.Rows[r]["PcID"];        
                         
                        }
                    worksheet.SaveAs(saveFileName, missing, missing, missing, missing, missing, missing, missing, missing, missing);
                    workbook.Close(missing, missing, missing);
                    xlApp.Quit();
                    GC.Collect();
                    GC.WaitForPendingFinalizers();
                    return true;
                }
                catch (Exception ex)
                {
                    return false;
                }
            }
    这是导出方法是这样的 
      

  7.   


               string XLS_Path = "~/Admin/upFile/";
                string XLS_Name = "裸钻导入_" + DateTime.Now.ToString("yyyyMMddHHmmsssss") + ".xls";
                string XLS_FullName = string.Empty;
                string fileExtName = "";
                if (fup2.PostedFile.ContentLength > 0)
                {
                    try
                    {
                        fileExtName = fup2.PostedFile.FileName.Substring(fup2.PostedFile.FileName.LastIndexOf("."));
                        if (fileExtName != ".xls" || fileExtName.Length < 1)
                        {
                            lbMsg0.Text = "无效的文件,。";
                            return;
                        }
                        XLS_FullName = Server.MapPath(XLS_Path + XLS_Name);
                        fup2.PostedFile.SaveAs(XLS_FullName);
                    }
                    catch (Exception ex)
                    {
                        lbMsg0.Text = ex.ToString();
                    }
                }
                else
                {
                    lbMsg0.Text = "请选择文件后再上传!!!";
                    return;
                }
                var msg = "";
                var begin = DateTime.Now;
                try
                {
                    string mystring = "Provider = Microsoft.Jet.OLEDB.4.0 ; Data Source = '" + XLS_FullName + "'" + ";Extended Properties=Excel 8.0;Persist Security Info=False ";
                    OleDbConnection cnnxls = new OleDbConnection(mystring);
                    cnnxls.Open();
                    //返回Excel的架构,包括各个sheet表的名称,类型,创建时间和修改时间等 
                    DataTable dtSheetName = cnnxls.GetOleDbSchemaTable(OleDbSchemaGuid.Tables, new object[] { null, null, null, "Table" });
                    //包含excel中表名的字符串数组
                    string[] strTableNames = new string[dtSheetName.Rows.Count];
                    for (int k = 0; k < dtSheetName.Rows.Count; k++)
                    {
                        strTableNames[k] = dtSheetName.Rows[k]["TABLE_NAME"].ToString();
                    }
                    OleDbDataAdapter myCommand = null;
                    DataTable dt = new DataTable();
                    //从指定的表明查询数据,可先把所有表明列出来供用户选择
                    string strExcel = "select*from[" + strTableNames[0] + "]";
                    myCommand = new OleDbDataAdapter(strExcel, cnnxls);
                    dt = new DataTable();
                    myCommand.Fill(dt);
                    string AdminCName ="aa"
                    var str = bll.BatchDiamond1(dt, AdminCName, pnum);
    这个是导入方法
      

  8.   

    string strConn = "Provider=Microsoft.Jet.OLEDB.4.0;Data Source=" + filePath + ";Extended Properties='Excel 8.0;HDR=False;IMEX=1'";
     using(OleDbConnection OleConn = new OleDbConnection(strConn))
    {
      OleConn.Open();
      String sql = "SELECT * FROM [Sheet1$]";
      OleDbDataAdapter OleDaExcel = new OleDbDataAdapter(sql, OleConn);
      DataSet ds= new DataSet();
      OleDaExcel.Fill(ds);
      OleConn.Close();
    }
    检查excel,连接字符串
      

  9.   

      我先导出excel   然后导入 但是导入的时候 发现 open() 打不开了... 
      那么就是连接字符串的问题 
      是不是跟excel 本事有关啊? 
      我如何设置导出的excel 的版本 或是其他信息啊?
      

  10.   

    这个表是不是你自己导出的?
    你想再导入是吗?这个excel是不是输出流保存的。
    你用记事本打开看看。
    你用excel打开,并保存一份。再试下。
      

  11.   

       有没有办法 设置导出的excel的版本 导入的excel连接字符串
      

  12.   

     我用下载excel后 双击打开出现了这个
      

  13.   

    LZ用记事本打开这excel就知道怎么回事的了。
    LZ像4楼这样。
    aaaaaaa,aaaaaaaaa,11111111111111111
    aaaaaaa,aaaaaaaaa,11111111111111111
    aaaaaaa,aaaaaaaaa,11111111111111111
    aaaaaaa,aaaaaaaaa,11111111111111111
    aaaaaaa,aaaaaaaaa,11111111111111111像读文本文件一样去读吧。
    只需要注意分割字符就好了。
      

  14.   

       分割的话 还是有弊端啊?? 
      我不想出现什么巧合 用excel 就不会  难道没什么办法可以做到??
      

  15.   

        呵呵  问题找到了 因为本机装的是office2007  所以导出来的数据也是2007  
      但是我的连接字符串是2003的 所以出问题了 有没有办法判断 导入的excel版本??
      

  16.   

    我从数据从一个页面导出到一个xls里面???
    是标准的XLS格式吗?
      

  17.   


       是版本的问题  office 2003 和 2007之间的问题   你可以去看看