如何获取excel的所有工作薄的数据,并且要去除空记录,然后存放在临时表里,我现在只能获取第一个工作薄的数据,并且把空白行都获取了。

解决方案 »

  1.   

    excel导入很不方便,如果要做数据格式验证就跟麻烦了
      

  2.   

    你的sheet 命名规范吗?是sheet1 2 这样的就简单些不是的话先要读名字。
      

  3.   

    不用验证的数据的完整性的,我是想把EXCEL的所有工作薄里的数据都合并起来,并存放在dataset或者datatable中,然后在循环插入MSSQL数据库里
      

  4.   

    用Aspose.Cells 或者开源插件myxls-0.6.0,功能很强大的。随便你怎么处理excel,微软自带的功能太弱。
      

  5.   

    建议使用NPOI,我最近刚用网上这方面资料比较多,对Excel支持的很好。
      

  6.   

    http://blog.csdn.net/fangxinggood/article/details/397315
      

  7.   

    我弄一个,不太好,自己随便看看   public partial class MainWindow : Window
        {
            DataSet dsExcel= new DataSet();
            string dbFilenameExcel;
            string tableNameExcel;
            public MainWindow()
            {
                InitializeComponent();
            }        private void MenuItem_Click(object sender, RoutedEventArgs e)
            {
                MenuItem mn=sender as MenuItem;
                string openExcelFilename="";
                string connectionString = "";
                switch(mn.Header.ToString())
                {
                    case "Excel97-2003文件":
                        OpenFileDialog fileOpenExcel03 = new OpenFileDialog();
                        fileOpenExcel03.Filter = "Excel文件97-2003(*.xls)|*.xls";
                        if (fileOpenExcel03.ShowDialog() != true)
                            return;                    openExcelFilename = fileOpenExcel03.FileName.Trim();
                        dbFilenameExcel = fileOpenExcel03.SafeFileName;
                        connectionString = @"Provider=Microsoft.Jet.OLEDB.4.0;Data Source=" +
                            openExcelFilename + ";Extended Properties='Excel 8.0'";
                        break;
                    case "Excel2007-10文件":
                        OpenFileDialog fileOpenExcel07 = new OpenFileDialog();
                        fileOpenExcel07.Filter = "Excel2007-10文件(*.xlsx)|*.xlsx";
                        if (fileOpenExcel07.ShowDialog() != true)
                            return;                    openExcelFilename = fileOpenExcel07.FileName.Trim();
                        dbFilenameExcel = fileOpenExcel07.SafeFileName;
                        connectionString =@"Provider=Microsoft.ACE.OLEDB.12.0;Data Source=" +
                            openExcelFilename + ";Extended Properties='Excel 12.0'";
                        break;
                   }
                OleDbConnection ODCExcel = new OleDbConnection(connectionString);
                SelectWindow selectWin = new SelectWindow();
                List<string> tableNames = GetTableNames(ODCExcel);
                if (tableNames.Count <= 0)
                    return;
                selectWin.cmbTableList.Items.Clear();
                selectWin.cmbTableList.ItemsSource = tableNames;
                if (selectWin.ShowDialog() != true)
                    return;
                tableNameExcel = "[" + selectWin.cmbTableList.Text + "]";            string selectString = "select * From " + tableNameExcel;
                OleDbDataAdapter ODCAExcel = new OleDbDataAdapter(selectString, ODCExcel);
                try
                {
                    dsExcel.Clear();
                    ODCAExcel.Fill(dsExcel, "tableOpening");
                    dataGridExcel.ItemsSource = dsExcel.Tables["tableOpening"].DefaultView;
                    lblMessage.Content = openExcelFilename + ":" + tableNameExcel.Substring(1, tableNameExcel.Length - 3);
                }
                catch (Exception ex)
                {
                    MessageBox.Show(ex.Message);            }
                 
            }
            //以下省略
      

  8.   

    http://www.lmwlove.com/Article/ArticleDetail.aspx?ID=364基本包括了对Excel的所有基础操作
      

  9.   


    使用这个吧.我们公司一直都用这个东东,可以获取到所有的SHEET,连接也不需要oledb.帮助文档现在也比较丰富了.