从数据集导出数据到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文件。