C#如何读取Excel中的数据

#region 读取Excel中的数据   02./// <summary>    03./// 读取Excel中的数据   04./// </summary>    05./// <param name="excelFile">Excel文件名及路径,EG:C:\Users\JK\Desktop\导入测试.xls</param>    06./// <returns>Excel中的数据</returns>    07.private DataTable GetTable(string fileName)  08.{   09.    OleDbConnection objConn = null;  10.    System.Data.DataTable dt = null;  11.    string connString = string.Empty;  12.    OleDbDataAdapter da = new OleDbDataAdapter();  13.    //获取Excel工作薄中Sheet页(工作表)名集合   14.    String[] ss = this.GetExcelSheetNames(fileName);  15.    DataTable dataTable = new DataTable();     16.    try  17.    {                 18.        string FileType = fileName.Substring(fileName.LastIndexOf("."));  19.        if (FileType == ".xls")  20.            connString = "Provider=Microsoft.Jet.OLEDB.4.0;" +  21.               "Data Source=" + fileName + ";Extended Properties=Excel 8.0;";  22.        else//.xlsx   23.            connString = "Provider=Microsoft.ACE.OLEDB.12.0;" + "Data Source=" + fileName + ";" + ";Extended Properties=\"Excel 12.0;HDR=YES;IMEX=1\"";  24.        // 创建连接对象    25.        objConn = new OleDbConnection(connString);  26.        // 打开数据库连接    27.        objConn.Open();  28.         29.        string sql_F = "Select * FROM [{0}]";  30.        for (int i = 0; i < ss.Length;i++ )  31.        {  32.            da.SelectCommand = new OleDbCommand(String.Format(sql_F, ss[i].ToString() + "$"), objConn);  33.            da.Fill(dataTable);  34.            MessageBox.Show("第"+i+"次表中数据量="+dataTable.Rows.Count.ToString());  35.        }  36.        dataTable = DeleteBlank(dataTable,9);  37.        MessageBox.Show("删除空行后,表中数据量=" + dataTable.Rows.Count.ToString());  38.        return dataTable;  39.    }  40.    catch (Exception ex)  41.    {  42.        MessageBox.Show(ex.ToString());  43.        return null;  44.    }  45.    finally  46.    {  47.        // 清理    48.        if (objConn != null)  49.        {  50.            objConn.Close();  51.            objConn.Dispose();  52.        }  53.        if (dt != null)  54.        {  55.            dt.Dispose();  56.        }  57.    }             58.}  59. 60.#endregion 

本文URL:http://www.bianceng.cn/Programming/csharp/201410/45598.htm

#region  删除指定表中的空白行   02./// <summary>   03.///删除指定表中的空白行    04./// </summary>   05./// <param name="dt">表名</param>   06./// <param name="ColNum">Excel中的列数</param>   07./// <returns>删除空白行后的DataTable</returns>   08.private DataTable DeleteBlank(DataTable dt,int ColNum)  09.{  10.    if (dt == null || dt.Rows.Count==0)  11.    {  12.        return dt;  13.    }  14.    //删除其中的空行(注意for循环的形式)   15.    for (int i = dt.Rows.Count - 1; i >= 0; i--)  16.    {  17.        DataRow row = dt.Rows[i];  18.        bool flag = true;  19.        //当某行的ColNum列,均为空时,改行为空   20.        for (int j = 0; j < ColNum; j++)  21.        {  22.            object o = row[j];  23.            if (o != DBNull.Value && Convert.ToString(o).Trim().Length > 0)  24.            {  25.                flag = false;  26.                break;  27.            }  28.        }  29.        if (flag)  30.        {  31.            dt.Rows[i].Delete();                   32.        }  33.    }  34.    dt.AcceptChanges();  35.    //把行中DBNull列替换成空字符串   36.    for (int k = dt.Rows.Count - 1; k >= 0; k--)  37.    {  38.        DataRow row = dt.Rows[k];  39.        for (int z = 0; z < ColNum; z++)  40.        {  41.            object o = row[z];  42.            if (o == DBNull.Value)  43.            {  44.                if (dt.Columns[z].DataType == typeof(string))  45.                {  46.                    row[z] = "";  47.                }  48.            }  49.        }  50.    }  51.    dt.AcceptChanges();  52.    return dt;  53.}  54.#endregion

小注:

读取Excel的时候,会自动处理表头。

以上是小编为您精心准备的的内容,在的博客、问答、公众号、人物、课程等栏目也有的相关内容,欢迎继续使用右上角搜索按钮进行搜索excel
, datatable
, filename
, c# excel读取
, sql  datatable C
, #DataTable验证Null
, rows
空白行
c站、c语言、cf、ch、c罗,以便于您获取更多的相关知识。

时间: 2024-12-31 09:19:23

C#如何读取Excel中的数据的相关文章

asp.net读取excel中的数据并绑定在gridview

 这篇文章主要介绍了asp.net读取excel中的数据并绑定在gridview上的方法,需要的朋友可以参考下       前台label,DropDownList,gridview控件 aspx.cs核心代码: 代码如下: using System.Data.OleDb;//需要引入命名 public void Excel_Click(object sender, EventArgs e) { if (this.AttachmentFile.Value == "" &&

C# 读取Excel中的数据

#region 读取Excel中的数据 /// <summary> /// 读取Excel中的数据 /// </summary> /// <param name="excelFile">Excel文件名及路径,EG:C:\Users\JK\Desktop\导入测试.xls</param> /// <returns>Excel中的数据</returns> private DataTable GetTable(stri

c++-读取Excel中字段数据,格式为日期,但读出来与表格中日期不一样

问题描述 读取Excel中字段数据,格式为日期,但读出来与表格中日期不一样 if(ret.vt==VT_DATE) //时间格式 { SYSTEMTIME st; VariantTimeToSystemTime((long)&ret.date, &st); CString date; date.Format("%d/%d/%d %d:%d:%d",st.wYear,st.wMonth, st.wDay,st.wHour,st.wMinute,st.wSecond,st.

asp.net读取excel中的数据并绑定在gridview_实用技巧

前台label,DropDownList,gridview控件 aspx.cs核心代码: 复制代码 代码如下: using System.Data.OleDb;//需要引入命名 public void Excel_Click(object sender, EventArgs e) { if (this.AttachmentFile.Value == "" && this.Label1.Text == "" && DropDownLis

PHPExcel读取EXCEL中的图片并保存到本地的方法

 这篇文章主要介绍了PHPExcel读取EXCEL中的图片并保存到本地的方法,本文直接给出代码实例,需要的朋友可以参考下     HPExcel是相当强大的 MS Office Excel 文档生成类库,当需要输出比较复杂格式数据的时候,PHPExcel 是个不错的选择. 经过认真研究API文档和查看官方文档,终于找到读取EXCEL中的图片,目前我只能读取excel 2003格式的.excel2007貌似还不支持. 其中主要使用的API为PHPExcel_Worksheet,PHPExcel_W

ASP.NET中如何用程序将excel中的数据导入到数据库中(C#)

问题描述 ASP.NET中如何用程序将excel中的数据导入到数据库中(C#),比较不同的时,excel只有一个表,里面是全部的详细信息,导入到sqlserver中的是多个表,这个如何实现?希望有具体的例子! 解决方案 解决方案二:大致原理:先将EXCEL导入GridView,然后再操作GridView中的数据存入数据库相应表中!在这里不能给你提供原码了,但你可以在Google内收到很多!解决方案三:用的是vs.net2003啊,应该如何?解决方案四:以下是我的一个真实的例子,供参考!<tr>

arraylist-急 在线等 谢谢!java想要读取excel中某以特定单元格的值,现在是循环读出所有的值,请帮忙修改一下

问题描述 急 在线等 谢谢!java想要读取excel中某以特定单元格的值,现在是循环读出所有的值,请帮忙修改一下 package com.excel.action; import java.io.BufferedInputStream; import java.io.File; import java.io.FileInputStream; import java.io.FileNotFoundException; import java.io.IOException; import java

读取excel去除重复数据,然后在存入数据库

问题描述 读取excel去除重复数据,数据量比较大,考虑执行效率问题,求大神给出最好解决方案 解决方案 解决方案二:如果你没有技术讨论,那么请把帖子发到"项目外包"论坛.免费"求"人,是一点诚意也没有的.解决方案三:你好!你可以在先Excel里面去除重复,再数据导入!这种方法不行吗?解决方案四:在查询Excel的时候直接去掉不行吗?和在数据库中一样用distinct解决方案五:可用第三方dll读取excel数据后进行去重然后存放到数据库中.aspose.cells读

导入-在poi读取excel的合并数据时,怎么判断合并了多少行以及怎么取值

问题描述 在poi读取excel的合并数据时,怎么判断合并了多少行以及怎么取值 类似于上面的导入格式怎么读数据 解决方案 参考这个EXCEL中如何用VBA判断某一地址单元格是否为合并单元格然后把vba转成你自己的语言http://wenku.baidu.com/link?url=nsc0K4oKljjsvfVayJIXT9q2oNcWMwgjRghQdCqOPPJaH_Zm0UNgwqRKRdmC5PypqxvKwIDBgRV7i8W9sxiR0_KhBR78e6b6vTenaoVEE-7