вторник, 23 ноября 2010 г.

Чтение данных с Excel

 public class TarufExcel
    {
        private DataClasses1DataContext data()
        {
            return DataProvider.DataContext();
        }


        private OleDbConnection Connection()
        {
           return DataProvider.ConnectionExcel();
        }


        public TarufExcel()
        {
            Connection().Open();           
            AdapterFill();
        }
        // Получаем списко листов в файле
        private DataTable ListSheetInFile()
        {
            return Connection().GetOleDbSchemaTable(OleDbSchemaGuid.Tables,
                                     new object[] { null, null, null, "TABLE" });
        }


        private string NameFirstSheet()
        {
            return (string)ListSheetInFile().Rows[0].ItemArray[2];
        }
        // Выбираем все данные с листа
        private string FullDataInFile()
        {
            return String.Format("SELECT * FROM [{0}]", NameFirstSheet());
        }


        OleDbDataAdapter adapte;
        private OleDbDataAdapter DataAdapterTaruf()
        {
           if(adapte==null)
            adapte = new OleDbDataAdapter(FullDataInFile(), Connection());
            return adapte;
        }


        DataSet ds=new DataSet("EXCEL");        
        private void AdapterFill()
        {
          
            DataAdapterTaruf().Fill(ds);
        }
        public DataTable dataTable()
        {            
            return ds.Tables[0];
        }
       
       
        public DataTable dataRow(int i)
        {
            DataTable NewTable = dataTable().Rows[i].Table.Clone();
            NewTable.BeginLoadData();
            NewTable.LoadDataRow(dataTable().Rows[i].ItemArray, true);
            NewTable.EndLoadData();
            return NewTable;        
        }


        taruf t;
        public void CopyExcelToDatabase()
        {            
            foreach(DataRow row in dataTable().Rows)
            {
                t = new taruf();
                t.name = Convert.ToString(row.ItemArray[0]);
                t.cena = Convert.ToInt32(row.ItemArray[1]);
                data().taruf.InsertOnSubmit(t);
                data().SubmitChanges();
            }
        }
    }

Комментариев нет:

Отправить комментарий