MadGoat's Blog

导航

EXCEL常用的类

using System;
using System.Data;
using System.Data.OleDb;

namespace my
{
    
/// <summary>
    
/// Excel 的摘要说明。
    
/// </summary>

    public class Excel
    
{
        
public Excel()
        
{
            
//
            
// TODO: 在此处添加构造函数逻辑
            
//
            
        }


        
public static DataSet SelectExcel_AllSheet1(string path,string condition)
        
{
            
string strConn;
            strConn 
= "Provider=Microsoft.Jet.OLEDB.4.0;" +
                
"Data Source="+path+";"+
                
"Extended Properties=Excel 8.0;";
            OleDbConnection conn 
= new OleDbConnection(strConn);
            OleDbDataAdapter myCommand 
= new OleDbDataAdapter("select * FROM [Sheet1$] "+condition, strConn);
            DataSet myDataSet 
= new DataSet();
            myCommand.Fill(myDataSet);
            
return myDataSet;
        }


        
public static DataSet SelectExcel(string path,string sqltext)
        
{
            
string strConn;
            strConn 
= "Provider=Microsoft.Jet.OLEDB.4.0;" +
                
"Data Source="+path+";"+
                
"Extended Properties=Excel 8.0;";
            OleDbConnection conn 
= new OleDbConnection(strConn);
            OleDbDataAdapter myCommand 
= new OleDbDataAdapter(sqltext, strConn);
            DataSet myDataSet 
= new DataSet();
            myCommand.Fill(myDataSet);
            
return myDataSet;
        }

        
        
//获取EXCEL文件的表名
        public static string[] ObtainTableName(string path)
    
{
            
string strConn = "Provider=Microsoft.Jet.OLEDB.4.0;" + "Data Source=" + path + ";Extended Properties=Excel 8.0;";
            OleDbConnection conn 
= new OleDbConnection(strConn);
            conn.Open();
            DataTable dt 
= conn.GetOleDbSchemaTable(OleDbSchemaGuid.Tables, null);
            
int i = dt.Rows.Count;
            
string[] strTableName=new string[i];
            
for(int s=0;s<i;s++)
            
{
                strTableName[s] 
= dt.Rows[s]["TABLE_NAME"].ToString();
            }

            
return strTableName;
    }
 
        
        
        
public static bool DataSetToExcelText(DataSet ds)
        
{
            
bool result=false;
            
            
if (ds.Tables[0]!=null)
            
{
                
string filename=OpenSaveDialog();
                
if ((filename!=null&& (filename!=""))
                
{
                    StreamWriter sw
=new StreamWriter(filename,false,Encoding.Unicode);
                    
try
                    
{
//                        StreamWriter sw=new StreamWriter(filename,false,Encoding.Unicode);
                        int i=0;
                        
int j=0;
                        j
=ds.Tables[0].Columns.Count;
                        
//文件列头
                        string s="";
                        
while (i<j)
                        
{
                            s
=s+ds.Tables[0].Columns[i].ColumnName+"\t";
                            i
=i+1;
                        }

                        sw.WriteLine(s);
                        
//写数据
                        foreach (DataRow r in ds.Tables[0].Rows )
                        
{
                            i
=0;
                            s
="";
                            
while (i<j)
                            
{
                                
if (r[i].ToString().Trim()=="")
                                
{
                                    s
=s+" "+"\t";
                                }

                                
else
                                
{
                                    s
=s+r[i].ToString().Trim()+"\t";
                                }

                                i
=i+1;
                            }

                            sw.WriteLine(s);
                        }

                        result
=true;
                        MessageBox.Show(
"导出成功!");
                    }

                    
catch
                    
{
                        result
=false;
                        MessageBox.Show(
"导出失败!");
                    }

                    
finally
                    
{
                        sw.Close();
                    }

                }

            }

                                   
            
return result;
        }


        
public static bool DataSetToExcelText(DataTable dt)
        
{
            
bool result=false;
            
            
if (dt!=null)
            
{
                
string filename=OpenSaveDialog();
                
if ((filename!=null&& (filename!=""))
                
{
                    StreamWriter sw
=new StreamWriter(filename,false,Encoding.Unicode);
                    
try
                    
{
                        
//                        StreamWriter sw=new StreamWriter(filename,false,Encoding.Unicode);
                        int i=0;
                        
int j=0;
                        j
=dt.Columns.Count;
                        
//文件列头
                        string s="";
                        
while (i<j)
                        
{
                            s
=s+dt.Columns[i].ColumnName+"\t";
                            i
=i+1;
                        }

                        sw.WriteLine(s);
                        
//写数据
                        foreach (DataRow r in dt.Rows )
                        
{
                            i
=0;
                            s
="";
                            
while (i<j)
                            
{
                                
if (r[i].ToString().Trim()=="")
                                
{
                                    s
=s+" "+"\t";
                                }

                                
else
                                
{
                                    s
=s+r[i].ToString().Trim()+"\t";
                                }

                                i
=i+1;
                            }

                            sw.WriteLine(s);
                        }

                        result
=true;
                        MessageBox.Show(
"导出成功!");
                    }

                    
catch
                    
{
                        result
=false;
                        MessageBox.Show(
"导出失败!");
                    }

                    
finally
                    
{
                        sw.Close();
                    }

                }

            }

                                   
            
return result;
        }


        
private static string OpenSaveDialog()
        
{
            
string result="";
            SaveFileDialog sfd
=new SaveFileDialog();
            sfd.Filter
="Excel文件(*.xls)|*.xls|文本文件(*.txt)|*.txt";
            sfd.OverwritePrompt
=true;
            
if (sfd.ShowDialog()==DialogResult.OK)
            
{
                result
=sfd.FileName;
            }

            
return result;
        }

        
        
        
        
    }

}
 

posted on 2007-01-22 13:23  MadGoat  阅读(323)  评论(0编辑  收藏  举报