C#中Execl一般文件的导入与导出

写入excel:

 

System.Windows.Forms.SaveFileDialog sd=new System.Windows.Forms.SaveFileDialog();

sd.Filter="Excel 2003 文档|*.xls";

if(sd.ShowDialog()==System.Windows.Forms.DialogResult.OK)

{

    FileStream fs=new FileStream(sd.FileName,FileMode.Create,FileAccess.Write);

    StreamWriter sw=new StreamWriter(fs,Encoding.Default);

    string line="";

    //写入列标题

    for (int i = 0; i < datamain.Columns.Count; i++)

    {

        line += datamain.Columns[i].Header.ToString() + "\t";

    }

    sw.WriteLine(line);

    for (int j = 0; j < datamain.Items.Count; j++)

    {



        Statresult dt = datamain.Items[j] as Statresult;

        line = dt.Client + "\t" + dt.Total + "\t" + dt.Receive + "\t" + dt.Rates + "\t" + dt.Inspection + "\t" + dt.Bugnum + "\t" + dt.Qualified + "\t";

        sw.WriteLine(line);



    }

    //关闭流

    sw.Close();

    fs.Close();

    MessageBox.Show("数据已经成功导出!","注意",MessageBoxButton.OK,MessageBoxImage.Information);

}

读取excel:

//以oledb方式连接excel文件并将混合型作为文本型读取

strConn = "Provider=Microsoft.Jet.  OLEDB.4.0;Data Source=D:\\Test.xls;Extended   Properties='Excel8.0;HDR=Yes;IMEX=1'";  

OleDbConnection conn = new OleDbConnection(strCon);

//将工作表作为数据表

string sql = "SELECT * FROM [Sheet1$]";

OleDbDataAdapter adp = new OleDbDataAdapter(sql,conn);

DataSet myDataSet = new DataSet();

adp.Fill(myDataSet,"[Sheet1$]");

 

其中读取主要注意的是Extended Properties='Excel8.0;HDR=Yes;IMEX=1',Excel8.0代表的是用什么版本的Execl程序读取文件,HDR=Yes代表第一行是作为表格的字段,IMEX=1代表第一行是表格字段。以上这些参数必须

要用单引号包括起来,不然会报错的。"SELECT * FROM [Sheet1$]"中的[Sheet1$]代表的是Execl文件中的工作簿,假设你的工作簿叫“asd”,那么查询的表名就是"SELECT * FROM [asd$]";

以上几点,是应用过程运到的问题,比较容易忽略,导致错误。

以上主要内容是参考http://www.cnblogs.com/861580030/archive/2011/01/14/1935246.html,自己应用在加上自己的理解。

你可能感兴趣的:(exec)