Excel数据导入到dateset

using System;
using System.Collections.Generic;
using System.Text;
using System.Collections;
using System.Data.OleDb;
using System.Data;
using System.Collections.Specialized;
using System.IO;
using System.Windows.Forms;


namespace SogalMRP.WinClients.WinUICommon
{
    public class ImportExcel
    {
        public static StringCollection ExcelSheetName(string filepath)
        {
            StringCollection names = new StringCollection();
            string strConn;
            strConn = "Provider=Microsoft.Jet.OLEDB.4.0;Data Source=" + filepath + ";Extended Properties='Excel 8.0;HDR=Yes;IMEX=1';";
            OleDbConnection conn = new OleDbConnection(strConn);
            conn.Open();
            DataTable sheetNames = conn.GetOleDbSchemaTable
            (System.Data.OleDb.OleDbSchemaGuid.Tables, new object[] { null, null, null, "TABLE" });
            conn.Close();
            foreach (DataRow dr in sheetNames.Rows)
            {
                names.Add(dr[2].ToString());
            }
            return names;
        }


        public static DataSet ExcelDataSource(string filepath, string sheetname)
        {
            string strConn;
            strConn = "Provider=Microsoft.Jet.OLEDB.4.0;Data Source=" + filepath + ";Extended Properties='Excel 8.0;HDR=Yes;IMEX=1';";
            OleDbConnection conn = new OleDbConnection(strConn);
            OleDbDataAdapter oada = new OleDbDataAdapter("select * from [" + sheetname + "]", strConn);
            DataSet ds = new DataSet();
            oada.Fill(ds);
            return ds;
        }

        public static DataSet CsvDataSouce(string filepath, string filename)
        {
            string strConn;
            strConn = "Provider=Microsoft.Jet.OLEDB.4.0;Data Source=" + filepath + ";Extended Properties='Text;HDR=Yes';";
            OleDbConnection conn = new OleDbConnection(strConn);
            OleDbDataAdapter oada = new OleDbDataAdapter("select * from " + filename, strConn);
            DataSet ds = new DataSet();
            oada.Fill(ds);
            return ds;
        }

        public static DataSet GetDataSouce(string filepath)
        {
            string fileExtName = Path.GetExtension(filepath);
            if (fileExtName.ToLower() == ".csv")
            {
                string path = Path.GetDirectoryName(filepath);
                string filename = Path.GetFileName(filepath);
                return CsvDataSouce(path, filename);
            }
            if (fileExtName.ToLower() == ".xls")
            {
                StringCollection sheetNameList = ExcelSheetName(filepath);
                return ExcelDataSource(filepath, sheetNameList[0]);
            }
            return null;

        }

        /// <summary>
        /// gridview数据导出到excel
        /// </summary>
        /// <param name="IGridView"></param>
        public static void ExportGridViewToExcel(DevExpress.XtraGrid.Views.Grid.GridView IGridView)
        {
            string saveFileName = "";
            SaveFileDialog savefile = new SaveFileDialog();
            savefile.DefaultExt = "xls";
            savefile.Filter = "Excel文件|*.xls";
            savefile.ShowDialog();
            saveFileName = savefile.FileName;
            if (saveFileName.IndexOf(":") < 0) return;
            IGridView.ExportToXls(saveFileName);
        }
    }
}

posted on 2010-10-14 15:00  风的轮廓  阅读(476)  评论(0编辑  收藏  举报

导航