C#读取Excel中的内容,并将内容存放在二维数组中

C#读取Excel中的内容,并将内容存放在二维数组中

  1. 读取Excel中的内容,存放在DataTable中
    string path= @“E:\C# 读取Excel存放在二维数组中\11.xls”;
    (1)不区分后缀名
    在这里插入图片描述
    具体代码如下:
    public static DataTable ImportExcelToDataTable2(string path)
    {
    //注意:把一个excel文件看做一个数据库,一个sheet看做一张表。语法 “SELECT * FROM [sheet1 ] " , 表 单 要 使 用 " [ ] " 和 " ]",表单要使用"[]"和" ]"使"[]""
    //以下2种方式都可以实现 Access数据库
    //string conStr = string.Format(“Provider=Microsoft.ACE.OLEDB.12.0; Data source={0}; Extended Properties=Excel 12.0;”, path);
    try
    {
    string conStr = “Provider=Microsoft.Ace.OLEDB.12.0;Data Source=” + path + “;Extended Properties=‘Excel 12.0;HDR=Yes;IMEX=2’”;
    using (OleDbConnection conn = new OleDbConnection(conStr))
    {
    conn.Open();
    //获取所有Sheet的相关信息(以下2种方式都可以实现)
    //DataTable dtSheet = conn.GetOleDbSchemaTable(System.Data.OleDb.OleDbSchemaGuid.Tables, null);
    DataTable dtSheet = conn.GetOleDbSchemaTable(System.Data.OleDb.OleDbSchemaGuid.Tables, new object[] { null, null, null, “TABLE” });
    if (dtSheet.Rows.Count > 0)
    {
    //获取第一个 Sheet的名称
    string sheetName = dtSheet.Rows[0][“TABLE_NAME”].ToString().Trim();
    string sql = string.Format(“select * from [{0}]”, sheetName);
    using (OleDbDataAdapter oda = new OleDbDataAdapter(sql, conn))
    {
    DataTable dt = new DataTable();
    oda.Fill(dt);
    return dt;
    }
    }
    return null;
    }
    }
    catch(Exception ex)
    {
    MessageBox.Show(ex.Message);
    return null;
    }
    }
    (2)区分后缀名
    在这里插入图片描述
    具体代码如下:
    public DataTable GetDataFromExcel(string filePath)
    {
    string connStr = “”;
    string fileType = System.IO.Path.GetExtension(filePath);
    if (string.IsNullOrEmpty(fileType)) return null;
    // 1、HDR表示要把第一行作为数据还是作为列名,作为数据用HDR=no,作为列名用HDR=yes;
    // 2、通过IMEX=1来把混合型作为文本型读取,避免null值。
    if (fileType == “.xls”||fileType == “.csv”)
    connStr = “Provider=Microsoft.Jet.OLEDB.4.0;” + “Data Source=” + filePath + “;” + ";Extended Properties=“Excel 8.0;HDR=NO;IMEX=1"”;//此连接只能操作Excel2007之前(.xls)文件
    else//.xlsx .csv
    connStr = @“Provider=Microsoft.ACE.OLEDB.12.0;Data Source=” + filePath + “;Extended Properties=“Excel 12.0 Xml;HDR=No””; //此连接可以操作.xls与.xlsx文件 (支持Excel2003 和 Excel2007 的连接字符串)
    string sql_F = "Select * FROM [{0}] ";
    OleDbConnection conn = null;
    OleDbDataAdapter da = null;
    DataTable dataTable = new DataTable();
    try
    {
    // 初始化连接,并打开
    conn = new OleDbConnection(connStr);
    conn.Open();
    da = new OleDbDataAdapter();
    da.SelectCommand = new OleDbCommand(String.Format(sql_F, “Sheet1$”), conn);
    da.Fill(dataTable);
    }
    catch (Exception ex)
    {
    MessageBox.Show(ex.Message);
    }
    finally
    { // 关闭连接
    if (conn.State == ConnectionState.Open)
    {
    conn.Close();
    da.Dispose();
    conn.Dispose();
    }
    }
    return dataTable;
    }

2.将DataTable中的数据存放在二维数组中
具体代码如下:
string[,] array = new string[dt.Rows.Count, dt.Columns.Count];
for (int i = 0; i < dt.Rows.Count; i++)
{
for (int j = 0; j < dt.Columns.Count; j++)
{
array[i, j] = dt.Rows[i][j].ToString().ToUpper().Trim();//把小写的字符转换成相应的大写字母。反之ToLower()
}
}
在这里插入图片描述

  • 6
    点赞
  • 39
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
你可以使用 C# ExcelDataReader 库来读取 Excel 文件的数据。下面是一个示例代码,演示如何读取一个名为 "data.xlsx" 的 Excel 文件的数据: ```csharp using System; using System.Data; using System.IO; using ExcelDataReader; class Program { static void Main(string[] args) { // 将 Excel 文件读入内存流 FileStream stream = File.Open("data.xlsx", FileMode.Open, FileAccess.Read); IExcelDataReader excelReader = ExcelReaderFactory.CreateOpenXmlReader(stream); // 读取 Excel 数据 DataSet result = excelReader.AsDataSet(); DataTable table = result.Tables[0]; // 将数据转换为二维数组 int rowCount = table.Rows.Count; int colCount = table.Columns.Count; string[,] data = new string[rowCount, colCount]; for (int row = 0; row < rowCount; row++) { for (int col = 0; col < colCount; col++) { data[row, col] = table.Rows[row][col].ToString(); } } // 打印二维数组的数据 for (int row = 0; row < rowCount; row++) { for (int col = 0; col < colCount; col++) { Console.Write("{0}\t", data[row, col]); } Console.WriteLine(); } // 关闭 Excel 数据读取器和内存流 excelReader.Close(); stream.Close(); } } ``` 在上面的代码,我们首先使用 `File.Open` 方法将 Excel 文件读入内存流,然后使用 `ExcelReaderFactory.CreateOpenXmlReader` 方法创建一个 Excel 数据读取器。接着,我们使用 `excelReader.AsDataSet` 方法读取 Excel 数据,并将其转换为 `DataSet` 对象。然后,我们从 `DataSet` 获取第一个表格,并将其转换为 `DataTable` 对象。接着,我们使用两个循环将 `DataTable` 的数据转换为二维数组。最后,我们打印二维数组的数据,并关闭 Excel 数据读取器和内存流。

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值