zoukankan      html  css  js  c++  java
  • C# DataSet和Excel之间导入导出

     

      1     public class ImportExportToExcel
      2     {
      3         private string strConn ;
      4         
      5         private System.Windows.Forms.OpenFileDialog openFileDlg=new System.Windows.Forms.OpenFileDialog();
      6         private System.Windows.Forms.SaveFileDialog saveFileDlg=new System.Windows.Forms.SaveFileDialog();      
      7         
      8         public ImportExportToExcel()
      9         {
     10             //
     11             // TODO: 在此处添加构造函数逻辑
     12             //
     13             this.openFileDlg.DefaultExt = "xls";
     14             this.openFileDlg.Filter = "Excel文件 (*.xls)|*.xls";
     15 
     16             this.saveFileDlg.DefaultExt="xls";
     17             this.saveFileDlg.Filter= "Excel文件 (*.xls)|*.xls";
     18 
     19         }
     20 
     21         从Excel文件导入到DataSet#region 从Excel文件导入到DataSet
     22         //        /// <summary>
     23         //        /// 从Excel导入文件
     24         //        /// </summary>
     25         //        /// <param name="strExcelFileName">Excel文件名</param>
     26         //        /// <returns>返回DataSet</returns>
     27         //        public DataSet ImportFromExcel(string strExcelFileName)
     28         //        {
     29         //            return doImport(strExcelFileName);
     30         //        }
     31         /**//// <summary>
     32         /// 从选择的Excel文件导入
     33         /// </summary>
     34         /// <returns>DataSet</returns>
     35         public DataSet ImportFromExcel()
     36         {
     37             DataSet ds=new DataSet();
     38             if (openFileDlg.ShowDialog() == System.Windows.Forms.DialogResult.OK) 
     39                 ds=doImport(openFileDlg.FileName);
     40             return ds;
     41         }
     42         /**//// <summary>
     43         /// 从指定的Excel文件导入
     44         /// </summary>
     45         /// <param name="strFileName">Excel文件名</param>
     46         /// <returns></returns>
     47         public DataSet ImportFromExcel(string strFileName)
     48         {
     49             DataSet ds=new DataSet();
     50             ds=doImport(strFileName);
     51             return ds;
     52         }
     53         /**//// <summary>
     54         /// 执行导入
     55         /// </summary>
     56         /// <param name="strFileName">文件名</param>
     57         /// <returns>DataSet</returns>
     58         private DataSet doImport(string strFileName)
     59         {
     60             if (strFileName==""return null;
     61               
     62             strConn = "Provider=Microsoft.Jet.OLEDB.4.0;" +
     63                 "Data Source=" +  strFileName + ";" +
     64                 "Extended Properties=Excel 8.0;";
     65             OleDbDataAdapter ExcelDA = new OleDbDataAdapter("SELECT * FROM [Sheet1$]", strConn);
     66 
     67             DataSet ExcelDs = new DataSet();
     68             try
     69             {
     70                 ExcelDA.Fill(ExcelDs, "ExcelInfo");
     71                 
     72             }
     73             catch(Exception err)
     74             {
     75                 System.Console.WriteLine( err.ToString() );
     76             }
     77             return ExcelDs;
     78             
     79             
     80         
     81         }
     82         #endregion
     83 
     84         从DataSet到出到Excel#region 从DataSet到出到Excel
     85         /**//// <summary>
     86         /// 导出指定的Excel文件
     87         /// </summary>
     88         /// <param name="ds">要导出的DataSet</param>
     89         /// <param name="strExcelFileName">要导出的Excel文件名</param>
     90         public void ExportToExcel(DataSet ds,string strExcelFileName)
     91         {
     92             if (ds.Tables.Count==0 || strExcelFileName==""return;
     93             doExport(ds,strExcelFileName);
     94     
     95 
     96         }
     97         /**//// <summary>
     98         /// 导出用户选择的Excel文件
     99         /// </summary>
    100         /// <param name="ds">DataSet</param>
    101         public void ExportToExcel(DataSet ds)
    102         {
    103             if (saveFileDlg.ShowDialog() == System.Windows.Forms.DialogResult.OK) 
    104                 doExport(ds,saveFileDlg.FileName);
    105             
    106         }
    107         /**//// <summary>
    108         /// 执行导出
    109         /// </summary>
    110         /// <param name="ds">要导出的DataSet</param>
    111         /// <param name="strExcelFileName">要导出的文件名</param>
    112         private void doExport(DataSet ds,string strExcelFileName)
    113         {
    114             
    115             Excel.Application excel= new Excel.Application();
    116             
    117             //            Excel.Workbook obj=new Excel.WorkbookClass();
    118             //            obj.SaveAs("c:\zn.xls",Excel.XlFileFormat.xlExcel9795,null,null,false,false,Excel.XlSaveAsAccessMode.xlNoChange,null,null,null,null);
    119 
    120             int rowIndex=1;
    121             int colIndex=0;
    122 
    123             excel.Application.Workbooks.Add(true);
    124             
    125     
    126             System.Data.DataTable table=ds.Tables[0] ;
    127             foreach(DataColumn col in table.Columns)
    128             {
    129                 colIndex++;    
    130                 excel.Cells[1,colIndex]=col.ColumnName;                
    131             }
    132 
    133             foreach(DataRow row in table.Rows)
    134             {
    135                 rowIndex++;
    136                 colIndex=0;
    137                 foreach(DataColumn col in table.Columns)
    138                 {
    139                     colIndex++;
    140                     excel.Cells[rowIndex,colIndex]=row[col.ColumnName].ToString();
    141                 }
    142             }
    143             excel.Visible=false;    
    144             excel.Sheets[0= "sss";
    145             excel.ActiveWorkbook.SaveAs(strExcelFileName+".XLS",Excel.XlFileFormat.xlExcel9795,null,null,false,false,Excel.XlSaveAsAccessMode.xlNoChange,null,null,null,null);
    146             
    147             
    148             //wkbNew.SaveAs strBookName
    149 
    150 
    151             //excel.Save(strExcelFileName);
    152             excel.Quit();
    153             excel=null;
    154             
    155             GC.Collect();//垃圾回收
    156         }
    157         #endregion
    158 
    159         从XML导入到Dataset#region 从XML导入到Dataset
    160 
    161         /**//// <summary>
    162         /// 从选择的XML文件导入
    163         /// </summary>
    164         /// <returns>DataSet</returns>
    165         public DataSet ImportFromXML()
    166         {
    167             DataSet ds=new DataSet();
    168             System.Windows.Forms.OpenFileDialog openFileDlg=new System.Windows.Forms.OpenFileDialog();
    169             openFileDlg.DefaultExt="xml";
    170             openFileDlg.Filter= "xml文件 (*.xml)|*.xml";
    171             if (openFileDlg.ShowDialog() == System.Windows.Forms.DialogResult.OK) 
    172                 try{ds.ReadXml(openFileDlg.FileName,System.Data.XmlReadMode.ReadSchema);}
    173                 catch{}
    174             return ds;
    175         }
    176         /**//// <summary>
    177         /// 从指定的XML文件导入
    178         /// </summary>
    179         /// <param name="strFileName">XML文件名</param>
    180         /// <returns></returns>
    181         public DataSet ImportFromXML(string strFileName)
    182         {
    183             if (strFileName=="")
    184                 return null;
    185             DataSet ds=new DataSet();
    186             try{ds.ReadXml(strFileName,System.Data.XmlReadMode.ReadSchema);}
    187             catch{}
    188             return ds;
    189         }
    190         
    191         #endregion
    192 
    193         从DataSet导出到XML#region 从DataSet导出到XML
    194         /**//// <summary>
    195         /// 导出指定的XML文件
    196         /// </summary>
    197         /// <param name="ds">要导出的DataSet</param>
    198         /// <param name="strXMLFileName">要导出的XML文件名</param>
    199         public void ExportToXML(DataSet ds,string strXMLFileName)
    200         {
    201             if (ds.Tables.Count==0 || strXMLFileName==""return;
    202             doExportXML(ds,strXMLFileName);
    203         }
    204         /**//// <summary>
    205         /// 导出用户选择的XML文件
    206         /// </summary>
    207         /// <param name="ds">DataSet</param>
    208         public void ExportToXML(DataSet ds)
    209         {
    210             System.Windows.Forms.SaveFileDialog saveFileDlg=new System.Windows.Forms.SaveFileDialog(); 
    211             saveFileDlg.DefaultExt="xml";
    212             saveFileDlg.Filter= "xml文件 (*.xml)|*.xml";
    213             if (saveFileDlg.ShowDialog() == System.Windows.Forms.DialogResult.OK) 
    214                 doExportXML(ds,saveFileDlg.FileName);
    215         }
    216 
    217         /**//// <summary>
    218         /// 执行导出
    219         /// </summary>
    220         /// <param name="ds">要导出的DataSet</param>
    221         /// <param name="strExcelFileName">要导出的XML文件名</param>
    222         private void doExportXML(DataSet ds,string strXMLFileName)
    223         {
    224             try
    225             {ds.WriteXml(strXMLFileName,System.Data.XmlWriteMode.WriteSchema );}
    226             catch(Exception ex)
    227             {System.Windows.Forms.MessageBox.Show(ex.Message,"Errol") ;}    
    228         }
    229 
    230         #endregion
    231 
    232     
    233     
    234     }
    235 

    可能用进程的强制删除方法:kill()
     1 #region "强制结束Word进程(垃圾回收)" 
     2 /// <summary> 
     3 /// 强制结束Word进程(垃圾回收) 
     4 /// </summary> 
     5 public void KillWordProcess() 
     6 
     7 int ProceedingCount = 0
     8 try 
     9 
    10 System.Diagnostics.Process [] ProceddingCon = System.Diagnostics.Process.GetProcesses(); 
    11 foreach(System.Diagnostics.Process IsProcedding in ProceddingCon) 
    12 
    13 if(IsProcedding.ProcessName.ToUpper() == "WINWORD"
    14 
    15 ProceedingCount += 1
    16 IsProcedding.Kill(); 
    17 
    18 
    19 
    20 catch(System.Exception err) 
    21 
    22 MessageBox.Show(err.Message + "\r" +"(" + err.Source + ")" + "\r" + err.StackTrace); 
    23 
    24 
    25 #endregion


    关于Excel进程一直驻留的,参考:
    http://support.microsoft.com/?scid=kb;zh-cn;317109&spid=1108&sid=152
  • 相关阅读:
    JDBC连接效率问题
    如何配置Filter过滤器处理JSP中文乱码(转)
    Servlet生命周期与工作原理(转)
    ANR触发原理
    SystemServer概述
    Zygote总结
    ART、JIT、AOT、Dalvik之间有什么关系?
    谈谈android缓存文件
    Activity启动过程全解析
    tombstone问题分析
  • 原文地址:https://www.cnblogs.com/jincwfly/p/379683.html
Copyright © 2011-2022 走看看