【问题标题】:How to load data from a specific column in datatable如何从数据表中的特定列加载数据
【发布时间】:2019-02-19 08:02:11
【问题描述】:

我有一个以编程方式创建的数据表(未使用连接等),在我的数据表中有 2 列。我只想将第二列的值导出到excel。对于我下面的代码,它从 excel 中的两列中导出数据。如何编写仅导出特定列?

    private void button2_Click(object sender, EventArgs e)
    {
        using (ExcelPackage pck = new ExcelPackage())
        {
            string filepath = "C:\\Trial.xlsx";
            ExcelWorksheet ws = pck.Workbook.Worksheets.Add("test");
            ws.Cells["A1"].LoadFromDataTable(dt1, false);
            pck.SaveAs(new FileInfo(filepath));
        }
        this.Close();
    }

【问题讨论】:

  • 您可以遍历您的 dt1,并分别设置每个单元格(不要忘记增加行)。您也可以通过行/列对访问单元格。 (类似于:ws.Cells[row, column].Value = your value from your table....)

标签: winforms datatable epplus


【解决方案1】:

将您的 DataTable 复制到临时表中并删除您不想要的列,然后导出到 excel。

例子:

DataTable tempDataTable;
tempDataTable = table.Copy();
tempDataTable.Columns.Remove("NameOfColumnYouDontWant");

在您的代码中:

private void button2_Click(object sender, EventArgs e)
    {
        using (ExcelPackage pck = new ExcelPackage())
        {
            string filepath = "C:\\Trial.xlsx";
            ExcelWorksheet ws = pck.Workbook.Worksheets.Add("test");
            DataTable tempDataTable;
            tempDataTable = dt1.Copy();
            tempDataTable.Columns.Remove("NameOfColumnYouDontWant");
            # Remove all columns you don't need
            ws.Cells["A1"].LoadFromDataTable(tempDataTable, false);
            pck.SaveAs(new FileInfo(filepath));
        }
        this.Close();
    }

【讨论】:

  • 删除了我之前的评论。由于我的“布尔”列有 3 行,所以我做了一个 for (int i = 1; i <=3; i++) 然后我复制了你的代码。这将显示我列中的所有数据。感谢您的宝贵时间。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2017-09-17
  • 1970-01-01
  • 2016-12-07
  • 2010-12-06
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多