C#读取Excel到DataTable

1、将Excel中的表格数据读取到DataTable中:

OpenFileDialog openFileDialog1 = new OpenFileDialog();
openFileDialog1.Title = "打开Excel文件";
openFileDialog1.Filter = "Files|*.xls;*.xlsx";
if (openFileDialog1.ShowDialog() == DialogResult.OK)
   {
       textBox1.Text = openFileDialog1.FileName;
       #region 读取excel到dt
       Microsoft.Office.Interop.Excel.Application xApp = new Microsoft.Office.Interop.Excel.ApplicationClass();
       xApp.Visible = false;
       Microsoft.Office.Interop.Excel.Workbook xBook = xApp.Workbooks.Open(openFileDialog1.FileName, System.Type.Missing, System.Type.Missing, System.Type.Missing, System.Type.Missing, System.Type.Missing, System.Type.Missing, System.Type.Missing, System.Type.Missing, System.Type.Missing, System.Type.Missing, System.Type.Missing, System.Type.Missing, System.Type.Missing, System.Type.Missing);
       Microsoft.Office.Interop.Excel.Worksheet xSheet = xBook.Sheets[1] as Microsoft.Office.Interop.Excel.Worksheet;
       string tableName = xSheet.Name;
       DataTable dt1 = DBhelper.getDataSetFromExcelTable(tableName, openFileDialog1.FileName);
       xBook.Close(true);
       Marshal.ReleaseComObject(xBook);
       Marshal.ReleaseComObject(xSheet);
       xBook = null;
       xSheet = null;
       System.Runtime.InteropServices.Marshal.ReleaseComObject(xApp);
       System.Diagnostics.Process[] excelprocess2 = System.Diagnostics.Process.GetProcessesByName("WINEXCEL");
       foreach (System.Diagnostics.Process pr in excelprocess2)
       {
            pr.Kill();//停止关联进程
       }
       #endregion
  }

2、读取Excel中指定表中的表格数据到DataTable中的公共类

        /// <summary>
        /// 读取Excel中指定表中的数据到DataTable中
        /// </summary>
        /// <param name="tableName">Excel中的表名</param>
        /// <param name="dataFilePath">Excel文件路径</param>
        /// <returns></returns>
        static public DataTable getDataSetFromExcelTable(string tableName,string dataFilePath)
        {
            string oleDB = "Provider=Microsoft.ACE.OLEDB.12.0;Data Source=" + dataFilePath+ ";Extended Properties='Excel 12.0;IMEX=1';";
            OleDbConnection connct = new OleDbConnection(oleDB);
            try
            {
                connct.Open();
                DataSet dataSet = new DataSet();
                string sql = "select * from " + "[" + tableName + "$]";
                OleDbDataAdapter datpTextdapter = new OleDbDataAdapter(sql, oleDB);

                try
                {
                    datpTextdapter.Fill(dataSet);
                    connct.Close();
                    return dataSet.Tables[0];
                }
                finally
                {
                    dataSet.Dispose();
                    datpTextdapter.Dispose();
                }
            }
            finally
            {
                connct.Dispose();
                //command.Dispose();
            }
        }

 

  • 0
    点赞
  • 5
    收藏
    觉得还不错? 一键收藏
  • 2
    评论
### 回答1: “C”在英语中是一个非常常用的字母,有许多不同的含义和用途。 首先,C是英文字母表中的第三个字母。它的发音是/ si:/(类似于字母's'的发音)。C有时也可以用作一种测量单位,例如Celsius(摄氏度)表示温度的度量。此外,C也是希腊字母Σ的罗马化表示,表示数学中的“总和”。 在计算和编程领域,C也是一种编程语言的名称。C语言是一种用于编写软件应用程序的高级编程语言。由于C语言编写的程序可以在许多操作系统上运行,因此它被广泛用于开发各种类型的软件,从操作系统到游戏和应用程序。 此外,“C”也是一种音乐符号,“do”的意思。在西方音乐中,音符用字母表示,其中"C"代表了音阶中的基本音。这些音符的排列组合形成了音乐的旋律。 最后,C还是一种通用的国际电气标准,代表直流电(直流电)。这个标准用于指定电力系统中使用的电压和频率。 综上所述,字母“C”在不同的领域中具有多种含义和用途,无论是作为字母表中的一个字母,作为编程语言的名称,还是在音乐和电气工程中的特殊含义,它都在各个领域中扮演重要角色。 ### 回答2: “c”字在汉语中是一个非常常用的字母。它可以代表很多词语,比如“城市”、“车站”、“草地”、“沉默”等等。在这300字的篇幅里,我将简要地介绍几个与“c”相关的词语。 首先是“城市”。城市是现代社会中人们生活和工作的地方,它具有高度的人口密度、发达的经济和文化活动。城市提供了工作机会,教育,医疗和娱乐设施。目前全球有许多大城市,如纽约、伦敦、巴黎和上海等。 接下来是“车站”。车站是交通工具的乘客上下车的地方,如火车站、汽车站、地铁站等。在车站,出行者可以买票、候车、上车、下车等。车站是城市交通系统中非常重要的一部分,它提供便利和安全的交通服务。 然后是“草地”。草地是大片用草覆盖的地方,一般是用来放牧动物,也可用作运动场地或休闲活动区域。草地可以保持土壤稳定,防止土壤侵蚀,同时还能吸收雨水。草地不仅美观,也有助于保护环境和生态平衡。 最后是“沉默”。沉默是指不说话,保持安静。有时候,沉默也能传递信息,表达情感。在沉默中,人们可以反思、冥想和平静自己的情绪。沉默也是一种表达方式,尤其在一些特殊场合,如悼念仪式或庄重的场合中,人们通常会保持沉默。 以上是一些与“c”相关的词语的简单介绍,希望对您有所帮助。当然,“c”还有很多其他的含义和用法,这只是对于“c”字的一个小小的描述。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值