本帖最后由 a260881071 于 2009-11-18 18:13:35 编辑

解决方案 »

  1.   

    感觉现在的贴子如果index=1就没人回了。(查看零回复去哪里了?)
      

  2.   

    No error message available
      

  3.   

    LZ为什么不试试导出成EXCEL,然后导入呢
      

  4.   

       导入导出  有这么多格式呢?  用的最多的就是EXCEL 和CSV格式  这无论是大数据量还是小的,都很实用。  
      

  5.   

     要在应用程序里实现,不是在sql里。
      

  6.   

    导出导入EXCEL不都是程序实现的,没什么问题呀
      

  7.   

    哦,就是以前没做过,有相当Demo吗?
      

  8.   

    我用ado 通过dataset导入了xml,也把xml转成了dataset,怎么把这个dataset里的数据再插入数据库?
      

  9.   

    封装好的导入导出EXCEL类,直接调用就行using System;
    using System.Collections.Generic;
    using System.Text;
    using System.Data;
    using System.Data.OleDb;
    using System.Reflection;
    using Excel;namespace ImportExportToExcel
    {
        public class ImportExportToExcel
        {
            private string strConn ;
            
            private System.Windows.Forms.OpenFileDialog openFileDlg=new System.Windows.Forms.OpenFileDialog();
            private System.Windows.Forms.SaveFileDialog saveFileDlg=new System.Windows.Forms.SaveFileDialog();      
            
            public ImportExportToExcel()
            {
                //
                // TODO: 在此处添加构造函数逻辑
                //
                this.openFileDlg.DefaultExt = "xls";
                this.openFileDlg.Filter = "Excel文件 (*.xls)|*.xls";            this.saveFileDlg.DefaultExt="xls";
                this.saveFileDlg.Filter= "Excel文件 (*.xls)|*.xls";        }        
            #region 从Excel文件导入到DataSet
            //        /// <summary>
            //        /// 从Excel导入文件
            //        /// </summary>
            //        /// <param name="strExcelFileName">Excel文件名</param>
            //        /// <returns>返回DataSet</returns>
            //        public DataSet ImportFromExcel(string strExcelFileName)
            //        {
            //            return doImport(strExcelFileName);
            //        }
            /**//// <summary>
            /// 从选择的Excel文件导入
            /// </summary>
            /// <returns>DataSet</returns>
            public DataSet ImportFromExcel()
            {
                DataSet ds=new DataSet();
                if (openFileDlg.ShowDialog() == System.Windows.Forms.DialogResult.OK) 
                    ds=doImport(openFileDlg.FileName);
                return ds;
            }
            /**//// <summary>
            /// 从指定的Excel文件导入
            /// </summary>
            /// <param name="strFileName">Excel文件名</param>
            /// <returns></returns>
            public DataSet ImportFromExcel(string strFileName)
            {
                DataSet ds=new DataSet();
                ds=doImport(strFileName);
                return ds;
            }
            /**//// <summary>
            /// 执行导入
            /// </summary>
            /// <param name="strFileName">文件名</param>
            /// <returns>DataSet</returns>
            private DataSet doImport(string strFileName)
            {
                if (strFileName=="") return null;
                  
                strConn = "Provider=Microsoft.Jet.OLEDB.4.0;" +
                    "Data Source=" + strFileName + ";" +
                    "Extended Properties=Excel 8.0;";
                OleDbDataAdapter ExcelDA = new OleDbDataAdapter("SELECT * FROM [Sheet1$]", strConn);            DataSet ExcelDs = new DataSet();
                try
                {
                    ExcelDA.Fill(ExcelDs, "ExcelInfo");
                    
                }
                catch(Exception err)
                {
                    System.Console.WriteLine( err.ToString() );
                }
                return ExcelDs;
                
                
            
            }
            #endregion        #region 从DataSet到出到Excel
            /**//// <summary>
            /// 导出指定的Excel文件
            /// </summary>
            /// <param name="ds">要导出的DataSet</param>
            /// <param name="strExcelFileName">要导出的Excel文件名</param>
            public void ExportToExcel(DataSet ds,string strExcelFileName)
            {
                if (ds.Tables.Count==0 || strExcelFileName=="") return;
                doExport(ds,strExcelFileName);
               }
            /**//// <summary>
            /// 导出用户选择的Excel文件
            /// </summary>
            /// <param name="ds">DataSet</param>
            public void ExportToExcel(DataSet ds)
            {
                if (saveFileDlg.ShowDialog() == System.Windows.Forms.DialogResult.OK) 
                    doExport(ds,saveFileDlg.FileName);
                
            }
            /**//// <summary>
            /// 执行导出
            /// </summary>
            /// <param name="ds">要导出的DataSet</param>
            /// <param name="strExcelFileName">要导出的文件名</param>
            private void doExport(DataSet ds,string strExcelFileName)
            {
                
                Excel.Application excel= new Excel.Application();
                
                //            Excel.Workbook obj=new Excel.WorkbookClass();
                //            obj.SaveAs("c:\zn.xls",Excel.XlFileFormat.xlExcel9795,null,null,false,false,Excel.XlSaveAsAccessMode.xlNoChange,null,null,null,null);            int rowIndex=1;
                int colIndex=0;            excel.Application.Workbooks.Add(true);
                
        
                System.Data.DataTable table=ds.Tables[0] ;
                foreach(DataColumn col in table.Columns)
                {
                    colIndex++;    
                    excel.Cells[1,colIndex]=col.ColumnName;                
                }            foreach(DataRow row in table.Rows)
                {
                    rowIndex++;
                    colIndex=0;
                    foreach(DataColumn col in table.Columns)
                    {
                        colIndex++;
                        excel.Cells[rowIndex,colIndex]=row[col.ColumnName].ToString();
                    }
                }
                excel.Visible=false;
                
                excel.ActiveWorkbook.SaveAs(strExcelFileName + ".XLS",
                    Excel.XlFileFormat.xlExcel9795, null, null, false,
                    false, Excel.XlSaveAsAccessMode.xlNoChange, null, null, null, null,null);
                
                
                //wkbNew.SaveAs strBookName
                //excel.Save(strExcelFileName);
                excel.Quit();
                excel=null;
                
                GC.Collect();//垃圾回收
            }
            #endregion        #region 从XML导入到Dataset        /**//// <summary>
            /// 从选择的XML文件导入
            /// </summary>
            /// <returns>DataSet</returns>
            public DataSet ImportFromXML()
            {
                DataSet ds=new DataSet();
                System.Windows.Forms.OpenFileDialog openFileDlg=new System.Windows.Forms.OpenFileDialog();
                openFileDlg.DefaultExt="xml";
                openFileDlg.Filter= "xml文件 (*.xml)|*.xml";
                if (openFileDlg.ShowDialog() == System.Windows.Forms.DialogResult.OK) 
                    try{ds.ReadXml(openFileDlg.FileName,System.Data.XmlReadMode.ReadSchema);}
                    catch{}
                return ds;
            }
            /**//// <summary>
            /// 从指定的XML文件导入
            /// </summary>
            /// <param name="strFileName">XML文件名</param>
            /// <returns></returns>
            public DataSet ImportFromXML(string strFileName)
            {
                if (strFileName=="")
                    return null;
                DataSet ds=new DataSet();
                try{ds.ReadXml(strFileName,System.Data.XmlReadMode.ReadSchema);}
                catch{}
                return ds;
            }
            
            #endregion        #region 从DataSet导出到XML
            /**//// <summary>
            /// 导出指定的XML文件
            /// </summary>
            /// <param name="ds">要导出的DataSet</param>
            /// <param name="strXMLFileName">要导出的XML文件名</param>
            public void ExportToXML(DataSet ds,string strXMLFileName)
            {
                if (ds.Tables.Count==0 || strXMLFileName=="") return;
                doExportXML(ds,strXMLFileName);
            }
            /**//// <summary>
            /// 导出用户选择的XML文件
            /// </summary>
            /// <param name="ds">DataSet</param>
            public void ExportToXML(DataSet ds)
            {
                System.Windows.Forms.SaveFileDialog saveFileDlg=new System.Windows.Forms.SaveFileDialog(); 
                saveFileDlg.DefaultExt="xml";
                saveFileDlg.Filter= "xml文件 (*.xml)|*.xml";
                if (saveFileDlg.ShowDialog() == System.Windows.Forms.DialogResult.OK) 
                    doExportXML(ds,saveFileDlg.FileName);
            }        /**//// <summary>
            /// 执行导出
            /// </summary>
            /// <param name="ds">要导出的DataSet</param>
            /// <param name="strExcelFileName">要导出的XML文件名</param>
            private void doExportXML(DataSet ds,string strXMLFileName)
            {
                try
                {ds.WriteXml(strXMLFileName,System.Data.XmlWriteMode.WriteSchema );}
                catch(Exception ex)
                {System.Windows.Forms.MessageBox.Show(ex.Message,"Errol") ;}    
            }        #endregion 
        }}
      

  10.   

    我生成的XML文件怎么保存到本地?