2011-04-26 228 views
4

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

+2

即使你在Google上试过,你在这个 – Dotnet 2011-04-26 12:44:51

+0

家伙身上也得到了很多,我不应该选择保存excel,而是应该自动保存在我指定的位置。 – creator 2011-04-27 04:26:06

+0

我已合并您的未注册帐户。您现在可以在答案下留下意见,编辑您的问题并在需要时接受答案。 – 2011-04-27 07:33:16

回答

1

入住这DataSetToExcel

c# (WinForms-App) export DataSet to 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); 
    } 
} 
+0

请总结您提供的链接中的文字。如果这些链接在没有重定向的情况下发生变化,您的回答将会丢失所有上下文 – 2011-04-27 07:45:19

1

使用ExcelLibrary这是单线...

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

参见Create Excel (.XLS and .XLSX) file from C#

+0

我试过这个,它给了'无效的单元格值'exception.I在这个 – shreesha 2017-03-10 11:46:38

+0

@shreesha上没有看到任何活动的开发我不知道你的一个或多个单元格公式中是否有错误? – 2017-03-16 05:30:01

+0

是@tony可能。否则你的解决方案是完美的。 – shreesha 2017-03-17 08:29:27

0

这里还有一个C#库,它可以让你从一个数据集导出到Excel 2007 .xlsx文件,使用OpenXML的图书馆。

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

所有的源代码提供,免费的,有一个演示应用程序一起,你可以在你的ASP.Net,WPF和WinForms应用程序使用此。

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

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

这并不容易。

祝你好运!

0

嗨,我找到了一个完美的解决方案Here

只是在代码System.Type.Missing取代“missing.value”。也删除

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

oXL.Quit();代码为 。否则,您的excel会在打开后自动关闭。

1

这个C# Excel library也可以用来导出数据集。有关如何导出的更多详细信息,请参见here

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

这是不是最好的解决办法,但这里是我做过什么,它会打开一个新的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); 
     } 
+0

OP希望保存的路径在哪里?也许要求他澄清他计划如何指定这条道路,然后再扩展。 – OYRM 2015-05-28 14:13:37

-1

这不是一个答案,这question.just对于那些谁很快要转换自己的xml文件到excel文件和来这里寻找解决方案。

条件:您必须使用visual studio。

遵循的步骤:

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

    string filePath = @“PATH TO XML FILE”; DataSet ds = new DataSet(); ds.ReadXml(filePath);

  • 放置一个断点在这条线

    ds.ReadXml(文件路径);

  • 调试模式运行

  • 一旦断点被​​击中的应用程序,进入下一个line.now数据将在DataSet中填充。

  • 在DataSet Visualizer中打开DataSet,如下所示。 enter image description here

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

+0

它实际上并没有回答这个问题。 – 2018-02-19 13:57:02