Как сбросить данные в ExcelWorkBook? - PullRequest
0 голосов
/ 08 сентября 2010

У меня есть задача выгрузить данные набора данных в рабочую книгу Excel. Предположим, если у меня более одной таблицы, мне нужно динамически создавать больше рабочих таблиц. Для этого я создал небольшое приложение. Но я застрял в создании рабочей таблицы. Кто-нибудь может мне помочь? Ниже приведен код

private void btn_export2excel_Click(object sender, EventArgs e)
{
  DataSet ds = new DataSet();
  ds.Tables.Add("Categories");
  ds.Tables.Add("Employee");

  try
  {
    Excel.Application xlApp;
    Excel.Workbook xlWorkBook;
    Excel.Worksheet[] xlWorkSheet = new Excel.Worksheet[2];
    object misValue = System.Reflection.Missing.Value;
    xlApp = new Excel.Application();
    xlWorkBook = xlApp.Workbooks.Add(misValue);
    xlWorkSheet[0] = (Excel.Worksheet) xlWorkBook.Worksheets.get_Item(1);
    xlWorkSheet[1] = (Excel.Worksheet) xlWorkBook.Worksheets.get_Item(1);
    xlWorkSheet[0].Cells[1, 1] = "www.google.com";
    xlWorkSheet[1].Cells[1, 1] = "www.yahoo.com";
    xlWorkBook.SaveAs("Sample.xls", Excel.XlFileFormat.xlWorkbookNormal, misValue, misValue, misValue, misValue,
                      Excel.XlSaveAsAccessMode.xlExclusive, misValue, misValue, misValue, misValue, misValue);
    xlWorkBook.Close(true, misValue, misValue);
    xlApp.Quit();
    releaseObject(xlWorkSheet[0]);
    releaseObject(xlWorkSheet[1]);
    releaseObject(xlWorkBook);
    releaseObject(xlApp);
  }
  catch (Exception ex)
  {
    MessageBox.Show(ex.Message, "Message from form");
  }
  finally
  {
    GC.Collect();
  }
}

private void releaseObject(object obj)
{
  try
  {
    System.Runtime.InteropServices.Marshal.ReleaseComObject(obj);
    obj = null;
  }
  catch (Exception ex)
  {
    obj = null;
    MessageBox.Show("Exception Occured while releasing object " + ex.ToString());
  }
  finally
  {
    GC.Collect();
  }
}

1 Ответ

1 голос
/ 28 января 2011

Попробуйте это ExportHelper . В этой статье четко объясняется, как экспортировать набор данных с несколькими таблицами в несколько листов в Excel.

...