【问题标题】:Exporting Excel to data grid view将 Excel 导出到数据网格视图
【发布时间】:2014-02-20 17:34:33
【问题描述】:

我有一个 Excel 文件,如果用户单击按钮,我想在数据网格视图中显示 Excel 文件。列是

Date, Day, Start time, End time, Totaltime, Difftime and Work done.

而我的示例行数据如下 A10 行和 A11 行。

A10 01-03-2014 星期六 8:20 22:30 13:40 4:40 设计

A11 02-03-2014 Sunday 9:00 21:00 11:30 2:30 编码

我的行在 10 到 40 的范围内,列是从 A-G

如果我将它导入到数据网格视图中,日期和时间显示不正确。 01/03/2014 显示为 404977。我想要代码将 Excel 文件导出到 datagridview 并且 datagridview 应该显示与 Excel 相同。谁能解释如何在 C# 中使用日期、开始、结束、总计、差异、作为 datagridview 列完成的工作?

【问题讨论】:

  • 导出还是导入?窗体?
  • 您可以使用 Openxml 之类的东西从 excel 文件中读取数据,将数据存储在一些 POCO 对象中,然后将其写入数据网格。您是否检查过该 excel 列的数据类型?无论如何,您是如何读取数据的?
  • @Sajeetharan 我想在数据网格视图中显示 excel...
  • @Jundev 时间列的数据格式为 H:[MM] 并且 Excel SIS 以双格式存储日期......

标签: c# .net excel datagridview oledb


【解决方案1】:

我假设你想将datagridview导入到窗口表单中,

Excel 2003,

private void button1_Click(object sender, EventArgs e)
    {
        String name = "Yoursheetname";
        String constr = "Provider=Microsoft.Jet.OLEDB.4.0;Data Source=" +
                        "C:\\Sample.xls" + 
                        ";Extended Properties='Excel 8.0;HDR=YES;';";

        OleDbConnection con = new OleDbConnection(constr);
        OleDbCommand oconn = new OleDbCommand("Select * From [" + name + "$]", con);
        con.Open();

        OleDbDataAdapter sda = new OleDbDataAdapter(oconn);
        DataTable data = new DataTable();
        sda.Fill(data);
        grid_items.DataSource = data;
    }

对于 Excel 2007,

 private void button1_Click(object sender, EventArgs e)
    {
        String name = "Yoursheetname";
        String constr = "Provider=Microsoft.ACE.OLEDB.12.0;Data Source=" +
                        "C:\\Sample.xlsx" + 
                        ";Extended Properties='Excel 12.0 XML;HDR=YES;';";

        OleDbConnection con = new OleDbConnection(constr);
        OleDbCommand oconn = new OleDbCommand("Select * From [" + name + "$]", con);
        con.Open();

        OleDbDataAdapter sda = new OleDbDataAdapter(oconn);
        DataTable data = new DataTable();
        sda.Fill(data);
        grid_items.DataSource = data;
    }

【讨论】:

  • 如何显示 coloms 日期、日期、开始......他们的查询将是什么......我的行范围是 10-40 如何只选择第 10-40 行和 coloms ag 使用查询
  • 如果您想在 datagridview 的自定义列上读取自定义列,它将自动绑定。
  • 我希望从 10 到 40 的行和从 a 到 g 的列出现在我的网格视图中..怎么做。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多