博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
C#操作OFFICE一(EXCEL)
阅读量:4636 次
发布时间:2019-06-09

本文共 5595 字,大约阅读时间需要 18 分钟。

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";
        }
        
从Excel文件导入到DataSet#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
        
从DataSet到出到Excel#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
        
从XML导入到Dataset#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
        
从DataSet导出到XML#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
    
    
    }

转载于:https://www.cnblogs.com/zpc870921/archive/2012/11/11/2765151.html

你可能感兴趣的文章
结构体的传参理解成员的存储方式
查看>>
python 进程与线程(理论部分)
查看>>
什么是API
查看>>
Java反射中method.isBridge() 桥接方法
查看>>
[shiro学习笔记]第二节 shiro与web融合实现一个简单的授权认证
查看>>
强名称程序集(strong name assembly)——为程序集赋予强名称
查看>>
1028. List Sorting (25)
查看>>
BZOJ 1613: [Usaco2007 Jan]Running贝茜的晨练计划
查看>>
ubuntu 重启命令,ubuntu 重启网卡方法
查看>>
Linux的学习:
查看>>
JavaScript中的原型继承原理
查看>>
Python logger模块
查看>>
jquery控制css的display(控制元素的显示与隐藏)
查看>>
关于python做人工智能的一个网页(很牛逼)
查看>>
判断控件的CGRect是否重合,获取控件的最大XY值
查看>>
POJ-1128 Frame Stacking
查看>>
异常体系
查看>>
String.format(转)
查看>>
解决 CS0006 未能找到元数据文件
查看>>
HDU 5131.Song Jiang's rank list (2014ACM/ICPC亚洲区广州站-重现赛)
查看>>