从数据集导出数据到excel

我试图从数据集导出数据到Excel,并直接保存到给定的path,而不给我打开,保存或取消的选项。

检查这个DataSetToExcel

c#(WinForms-App)将DataSet导出到Excel

在第一个链接中更改代码如下

删除最初启动的所有代码并尝试以下操作

using (StringWriter sw = new StringWriter("Your Path to save")) { using (HtmlTextWriter htw = new HtmlTextWriter(sw)) { // instantiate a datagrid DataGrid dg = new DataGrid(); dg.DataSource = ds.Tables[0]; dg.DataBind(); dg.RenderControl(htw); } } 

使用ExcelLibrary这是一个单线 …

 DataSet myDataSet; ... populate data set ... ExcelLibrary.DataSetHelper.CreateWorkbook("MyExcelFile.xls", myDataSet); 

另请参阅从C#创buildExcel(.XLS和.XLSX)文件

这个C#Excel库也可以用来导出数据集。 有关如何导出的更多细节可以在这里find。

 ExcelDocument xls = new ExcelDocument(); xls.easy_WriteXLSFile_FromDataSet("ExcelFile.xls", dataset, new ExcelAutoFormat(Styles.AUTOFORMAT_EASYXLS1), "Sheet Name"); 

这是另一个C#库,它允许您使用OpenXML库从DataSet导出到Excel 2007 .xlsx文件。

http://www.mikesknowledgebase.com/pages/CSharp/ExportToExcel.htm

所有的源代码都是免费提供的,还有演示应用程序,您可以在ASP.Net,WPF和WinForms应用程序中使用它。

一旦将类添加到应用程序中,只需要一个函数调用即可将数据导出到Excel文件中。

 CreateExcelFile.CreateExcelDocument(myDataSet, "C:\\Sample.xlsx"); 

这并不容易。

祝你好运 !

嗨,我发现了一个完美的解决scheme

只需用代码中的System.Type.Missingreplace“missing.value”。 也删除

oWB.Close(System.Type.Missing,System.Type.Missing,System.Type.Missing); 和

oXL.Quit(); 从代码。 否则你的excel会在打开后自动closures。

这不是最好的解决scheme,但是这是我做的,它打开一个新的Excel文档,然后复制数据集中的内容,所有你需要做的就是整理列并保存。

顺便说一句我的第一篇文章回答一个问题,希望它有帮助

  private void cmdExport_Click(object sender, EventArgs e) { System.Diagnostics.Process.Start("excel.exe"); try { copyAlltoClipboard(); 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 Excel.Application(); xlexcel.Visible = true; xlWorkBook = xlexcel.Workbooks.Add(misValue); xlWorkSheet = (Excel.Worksheet)xlWorkBook.Worksheets.get_Item(1); Excel.Range CR = (Excel.Range)xlWorkSheet.Cells[1, 1]; CR.Select(); xlWorkSheet.PasteSpecial(CR, Type.Missing, Type.Missing, Type.Missing, Type.Missing, Type.Missing, true); } catch (Exception ex) { MessageBox.Show("Error :" + ex.Message); } } private void copyAlltoClipboard() { dataGridViewItems.SelectAll(); DataObject dataObj = dataGridViewItems.GetClipboardContent(); if (dataObj != null) Clipboard.SetDataObject(dataObj); } 

这不是对这个问题的答案,只是对于那些很快想要将他们的XML文件转换为Excel文件并来这里寻找解决scheme的人来说。

条件:你必须使用视觉工作室。

遵循的步骤:

  • 创build控制台应用程序。
  • 将下面的代码添加到您的Main方法中。

    stringfilePath = @“path到XML文件”; DataSet ds = new DataSet(); ds.ReadXml(文件path);

  • 在这一行上放置一个断点

    ds.ReadXml(文件path);

  • 以debugging模式运行应用程序

  • 一旦命中断点,转到下一行。现在,数据将填充到DataSet中。

  • 在DataSet Visualizer中打开DataSet,如下所示。 在这里输入图像说明

  • 完成! 将数据复制到excel文件。