C#操作Excel!

 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.Sheets[
0= "sss";
            excel.ActiveWorkbook.SaveAs(strExcelFileName
+".XLS",Excel.XlFileFormat.xlExcel9795,null,null,false,false,Excel.XlSaveAsAccessMode.xlNoChange,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


    
    
    }

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值