使用带有数据库

时间:2017-11-06 10:52:06

标签: c# excel datagrid

我有一个链接到数据库的应用程序。我恢复数据并将其显示在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);

总结一下是否不清楚:

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

因此,如果您对我的问题有所了解甚至与我联系,那将会让我感到高兴。

再见,祝你好运!

2 个答案:

答案 0 :(得分:0)

尝试将此数据导出到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);
}

答案 1 :(得分:0)

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

你必须创建一个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已经填满,那你就错了!

感谢您的回复和美好的一天!如果您有任何疑问,请发送私信。

再见:)