我正在尝试将数据从数据集导出到excel并将其直接保存到给定路径,而不提供打开,保存或取消选项。
答案 0 :(得分:1)
和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);
}
}
答案 1 :(得分:1)
使用ExcelLibrary这是一个单行...
DataSet myDataSet;
... populate data set ...
ExcelLibrary.DataSetHelper.CreateWorkbook("MyExcelFile.xls", myDataSet);
答案 2 :(得分:1)
此C# Excel library也可用于导出数据集。有关如何导出的更多详细信息,请参见here。
ExcelDocument xls = new ExcelDocument();
xls.easy_WriteXLSFile_FromDataSet("ExcelFile.xls", dataset,
new ExcelAutoFormat(Styles.AUTOFORMAT_EASYXLS1), "Sheet Name");
答案 3 :(得分:0)
这是另一个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");
它没有那么容易。
祝你好运!答案 4 :(得分:0)
您好我找到了一个完美的解决方案Here
只需用代码中的System.Type.Missing替换'missing.value'即可。同时删除
oWB.Close(System.Type.Missing,System.Type.Missing,System.Type.Missing); 和
oXL.Quit(); 从代码。否则,您的excel会在打开后自动关闭。
答案 5 :(得分: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);
}