【问题标题】:To export an excel file with C# with database使用 C# 和数据库导出 excel 文件
【发布时间】:2017-11-06 10:52:05
【问题描述】:

我有一个链接到数据库的应用程序。我恢复数据并将其显示在 gridView 中。现在我正在尝试让我的按钮提取我的 xls 或 csv 文件。

我的数据网格: My datagrid

我的按钮代码提取 my button

所以,我想换个

xlWorkSheet.Cells[1, 1] = "Id Action";" //by my database or my datagridView. 

xlWorkSheet.Cells["all"] =  ADOAction.dataGridAction(var1, var2);

如果不清楚,总结一下:

  • 在数据库中提取数据的基本应用程序
  • 我有一个显示数据网格视图的视图
  • 我有 dataGrid 函数,用于在 datagridview 中显示数据库值
  • 我有一个按钮可以提取file.xls,但数据不在我的数据库中,它只是一个硬数据...

因此,如果您对我的问题有所了解,甚至可以链接到我,那会让我很高兴。

再见,美好的一天!

【问题讨论】:

标签: c# excel datagrid


【解决方案1】:

试试这个在windows表单数据网格视图中将数据导出到excel中

private void btnExportExcel_Click(object sender, EventArgs e)
{
    YourDataGridID.SelectAll();
    DataObject dataObj = YourDataGridID.GetClipboardContent();
    if (dataObj != null)
        Clipboard.SetDataObject(dataObj);
    GenerateExcel();
}

private static void GenerateExcel()
{
    Microsoft.Office.Interop.Excel.Application xlexcel;
    Microsoft.Office.Interop.Excel.Workbook xlWorkBook;
    Microsoft.Office.Interop.Excel.Worksheet xlWorkSheet;
    object misValue = System.Reflection.Missing.Value;
    xlexcel = new Microsoft.Office.Interop.Excel.Application();
    xlexcel.Visible = true;
    xlWorkBook = xlexcel.Workbooks.Add(misValue);
    xlWorkSheet = (Microsoft.Office.Interop.Excel.Worksheet)xlWorkBook.Worksheets.get_Item(1);
    Microsoft.Office.Interop.Excel.Range CR = (Microsoft.Office.Interop.Excel.Range)xlWorkSheet.Cells[1, 1];
    CR.Select();
    xlWorkSheet.PasteSpecial(CR, Type.Missing, Type.Missing, Type.Missing, Type.Missing, Type.Missing, true);
}

【讨论】:

  • 我有 2 个错误,第一个:GetClipBoardContent()(我认为缺少使用)第二个错误是 GenerateExcel 由于其保护级别而无法访问...
  • 现在我只有 1 个错误:GetClipBoardContent()...但我不知道...我试试这个:stackoverflow.com/questions/1478342/… 但不行。但是您的系统很好,创建excel并使用数据打开非常好......只是这个错误用于恢复数据网格中的数据:/
【解决方案2】:

所以,我搜索了一下,发现还不错:

你必须已经创建了一个 file.xlsx !!

我使用 NuGet 在我的 Visual Studio 2015 上下载 ClosedXML:https://github.com/ClosedXML/ClosedXML/blob/develop/README.md

然后我输入以下代码:

        XLWorkbook wb = new XLWorkbook("c:\\path...\\file.xlsx"); 
        DataTable dt = functiondatabase();
        wb.Worksheets.Add(dt, "NameOfSheets");
        wb.Save();

这个使用:

using ClosedXML.Excel;

现在您的文件中有数据,但警告!如果你的 file.xlsx 已经被填满,你有一个错误!

非常感谢您的回复,祝大家今天愉快!有问题可以私信我。

再见:)

【讨论】:

    猜你喜欢
    • 2021-06-23
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2021-10-08
    相关资源
    最近更新 更多