2010-08-30 2 views
0

У меня есть datatable. Мне нужно импортировать эти DataTable значения в Excel Template.How для достижения этой целиКак импортировать данные для листа excel

+0

всегда помните, что Google является вашим другом: http://www.codeproject.com/KB/office/ExcelDataTable.aspx http://msmvps.com/blogs/deborahk/archive/2009/07/ 23/writing-data-from-a-datatable-to-excel.aspx http://www.dotnetspider.com/resources/29183-Export-DataTable-Excel-using-c-with.aspx – MaQleod

ответ

1

Есть несколько вариантов

  1. Записать данные, как подать CSV
  2. Записать данные, как HTML-таблица
  3. Используйте Automation для управления исполняемым экземпляром Excel
  4. Используйте файл OleDB Driver для создания файла Excel. Another link from Microsoft.
  5. Используйте библиотеку как NPOI выписать Excel файл
  6. Используйте библиотеку как ExcelPackage выписать Excel файл
  7. Использование Office Open XML

из вариантов, мне нравится вариант 5 для производительности и простоты, особенно когда это необходимо на стороне сервера, опция 6 хороша, если вам нужны файлы XLSX, а не XLS, опция 7 имеет крутую кривую обучения по сравнению с 5 и 6.

0

Попробуйте этот вариант -

// TO USE: 
      // 1) include COM reference to Microsoft Excel Object library 
      // add namespace... 
      // 2) using Excel = Microsoft.Office.Interop.Excel; 
      private static void Excel_FromDataTable(DataTable dt) 
      { 
       // Create an Excel object and add workbook... 
       Excel.ApplicationClass excel = new Excel.ApplicationClass(); 
       // true for object template??? 
       Excel.Workbook workbook = excel.Application.Workbooks.Add(true); 


       // Add column headings... 
       int iCol = 0; 
       foreach (DataColumn c in dt.Columns) 
       { 
        iCol++; 
        excel.Cells[1, iCol] = c.ColumnName; 
       } 
       // for each row of data... 
       int iRow = 0; 
       foreach (DataRow r in dt.Rows) 
       { 
        iRow++; 

        // add each row's cell data... 
        iCol = 0; 
        foreach (DataColumn c in dt.Columns) 
        { 
         iCol++; 
         excel.Cells[iRow + 1, iCol] = r[c.ColumnName]; 
        } 
       } 

       // Global missing reference for objects we are not defining... 
       object missing = System.Reflection.Missing.Value; 

       // If wanting to Save the workbook... 
       workbook.SaveAs("MyExcelWorkBook.xls", 
        Excel.XlFileFormat.xlXMLSpreadsheet, missing, missing, 
        false, false, Excel.XlSaveAsAccessMode.xlNoChange, 
        missing, missing, missing, missing, missing); 

       // If wanting to make Excel visible and activate the worksheet... 
       excel.Visible = true; 
       Excel.Worksheet worksheet = (Excel.Worksheet)excel.ActiveSheet; 
       ((Excel._Worksheet)worksheet).Activate(); 

       // If wanting excel to shutdown... 
       ((Excel._Application)excel).Quit(); 
      } 
Смежные вопросы