0

我需要将加载的数据从 excel 加载到文本框。

我知道如何在 GridView 中查看它,但我需要获取要捕获到文本框的特定单元格值。

示例:应从单元格 A3 中捕获 TextBox FirstName 应从单元格 A4 中捕获姓氏。

任何人都可以帮助轻松排序吗?

于 2013 年 11 月 6 日编辑

我已经尝试了下面的代码并且它正在工作,但是我已经放置了一个单独的阅读器来捕获每个文本框的值,但它只会捕获第一行中的数据。任何人都可以帮助一次读取和捕获行和列差异单元格值吗?

string constrg = "Provider=Microsoft.ACE.OLEDB.12.0;Data Source=" + Txtpath.Text + ";Extended Properties=Excel 12.0;";
OleDbConnection conns = new OleDbConnection(constrg);


OleDbDataReader dr;
try
{
    conns.Open();
    OleDbCommand cmd = new OleDbCommand("Select * From [Sheet1$A10:H18]", conns);
    dr = cmd.ExecuteReader();
    if (dr.HasRows == false)
    {
        throw new Exception();
    }
    if (dr.Read())
    {
        
        TxtCluster.Text = dr[2].ToString();
        TxtPGroup.Text = dr[6].ToString();
                        
    }

    OleDbCommand cmd1 = new OleDbCommand("Select * From [Sheet1$A11:H18]", conns);
    dr = cmd1.ExecuteReader();
    if (dr.HasRows == false)
    {
        throw new Exception();
    }
    if (dr.Read())
    {
        
        TxtJbsize.Text = dr[2].ToString();
        TxtOsource.Text = dr[6].ToString();

    }

    OleDbCommand cmd2 = new OleDbCommand("Select * From [Sheet1$A12:H18]", conns);
    dr = cmd2.ExecuteReader();
    if (dr.HasRows == false)
    {
        throw new Exception();
    }
    if (dr.Read())
    {

        TxtNoPg.Text = dr[2].ToString();
        TxtProject.Text = dr[6].ToString();

    }
4

2 回答 2

2

试试这个链接How to read excel data into datatable using open xml

OpenDocument(strfileLocation, true);
OpenSheet("Sheet1");
ReadDocument(ref dtData);

您将在数据表中获取数据,之后您可以获取您的firstnamelastname通过像这样附加列

txtFirstName.Text = dtData.rows[0]["C3"].toString();
txtLastName.Text = dtData.rows[0]["C4"].toString();
于 2013-11-05T08:55:06.613 回答
0

您可以通过以下方式从 Excel 中获取数据:

  1. 使用Excel 自动化以编程方式启动 Excel 实例,将所需的工作簿加载到其中并访问单元格数据。
  2. 使用Excel 的 OLEDB 提供程序并以表格形式访问工作表。
于 2013-11-05T08:45:28.457 回答