Экспорт данных из набора данных в Excel - PullRequest
5 голосов
/ 26 апреля 2011

Я пытаюсь экспортировать данные из набора данных, чтобы преуспеть и сохранить их непосредственно по заданному пути, не давая мне возможность открывать, сохранять или отменять.

Ответы [ 6 ]

1 голос
/ 25 июня 2014

Эта C # библиотека Excel также может использоваться для экспорта набора данных. Подробнее о том, как экспортировать, можно узнать здесь .

ExcelDocument xls = new ExcelDocument();
xls.easy_WriteXLSFile_FromDataSet("ExcelFile.xls", dataset, 
                 new ExcelAutoFormat(Styles.AUTOFORMAT_EASYXLS1), "Sheet Name");
1 голос
/ 01 октября 2011

Использование ExcelLibrary это одна строка ...

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

См. Также Создание файла Excel (.XLS и .XLSX) из C #

1 голос
/ 26 апреля 2011

Проверьте это 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);
  }
}
0 голосов
/ 28 мая 2015

Это не самое лучшее решение, но вот что я сделал, он открывает новый документ 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 голосов
/ 06 декабря 2012

Привет, я нашел идеальное решение Здесь

Просто замените «missing.value» на System.Type.Missing в коде. Также удалите

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

oXL.Quit (); из кода. В противном случае ваш Excel закроется автоматически, как только он откроется.

0 голосов
/ 05 декабря 2011

Вот еще одна библиотека C #, которая позволяет экспортировать из DataSet в файл Excel 2007 .xlsx с использованием библиотек OpenXML.

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

Предоставляется весь исходный кодбесплатно, вместе с демонстрационным приложением, и вы можете использовать его в своих приложениях ASP.Net, WPF и WinForms.

После добавления класса в приложение достаточно одного вызова функцииэкспортировать ваши данные в файл Excel.

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

Это не намного проще.

Удачи!

...