Как я могу экспортировать данные в лист Excel с определяемой пользователем строкой № листа Excel из С #?

enter image description here

-3
Joji Thomas Eapen 8 Сен 2016 в 14:25

3 ответа

Лучший ответ

Вот как я сейчас пишу таблицу данных в электронную таблицу Excel, чтобы посмотреть, соответствует ли она вашим потребностям. Не могли бы вы подробнее рассказать о "определяемой пользователем строке № листа Excel из С #?" и я постараюсь помочь дальше. Это поместит электронную таблицу в активный каталог, там же, где находится EXE вашей программы.…

private static Microsoft.Office.Interop.Excel.Workbook mWorkBook;
private static Microsoft.Office.Interop.Excel.Sheets mWorkSheets;
private static Microsoft.Office.Interop.Excel.Worksheet mWSheet1;
private static Microsoft.Office.Interop.Excel.Application oXL;
public static void ReadExistingExcel()
{
   string path = @"C:\Tool\Reports1.xls";
   oXL = new Microsoft.Office.Interop.Excel.Application();
   oXL.Visible = true;
   oXL.DisplayAlerts = false;
   mWorkBook = oXL.Workbooks.Open(path, 0, false, 5, "", "", false, Microsoft.Office.Interop.Excel.XlPlatform.xlWindows, "", true, false, 0, true, false, false);
   //Get all the sheets in the workbook
  mWorkSheets = mWorkBook.Worksheets;
   //Get the allready exists sheet
   mWSheet1 = (Microsoft.Office.Interop.Excel.Worksheet)mWorkSheets.get_Item("Sheet1");
   Microsoft.Office.Interop.Excel.Range range= mWSheet1.UsedRange;
   int colCount = range.Columns.Count;
   int rowCount= range.Rows.Count;
   for (int index = 1; index < 15; index++)
   {
      mWSheet1.Cells[rowCount + index, 1] = rowCount +index;
      mWSheet1.Cells[rowCount + index, 2] = "New Item"+index;
   }
   mWorkBook.SaveAs(path, Microsoft.Office.Interop.Excel.XlFileFormat.xlWorkbookNormal,
   Missing.Value, Missing.Value, Missing.Value,    Missing.Value,Microsoft.Office.Interop.Excel.XlSaveAsAccessMode.xlExclusive,
   Missing.Value, Missing.Value, Missing.Value,
   Missing.Value, Missing.Value);
   mWorkBook.Close(Missing.Value, Missing.Value, Missing.Value);
   mWSheet1 = null;
   mWorkBook = null;
   oXL.Quit();
   GC.WaitForPendingFinalizers();
   GC.Collect();
   GC.WaitForPendingFinalizers();
   GC.Collect();
} 
1
Donald Duck 22 Апр 2017 в 12:13

Вот как я сейчас пишу таблицу данных в электронную таблицу Excel, чтобы посмотреть, соответствует ли она вашим потребностям. Не могли бы вы подробнее рассказать о "определяемой пользователем строке № листа Excel из С #?" и я постараюсь помочь дальше. Это поместит электронную таблицу в активный каталог, там же, где находится EXE вашей программы.

public void ExportToExcel(DataTable table, string filename)
    {
        var lines = new List<string>();

        string[] columnNames = table.Columns.Cast<DataColumn>().Select(column => column.ColumnName).ToArray();

        var header = string.Join(",", columnNames);
        lines.Add(header);

        var valueLines = table.AsEnumerable().Select(row => string.Join(",", row.ItemArray));
        lines.AddRange(valueLines);
        File.WriteAllLines(filename + ".csv", lines);

        DialogResult dialogResult = MessageBox.Show("File Successfully exported! Open now?", "Success", MessageBoxButtons.YesNo);
        if (dialogResult == DialogResult.Yes)
        {
            string path = "...";
            System.Diagnostics.Process.Start(path);
        }
    }
-1
B.Hawkins 8 Сен 2016 в 11:32

Попробуй это: If you not clear in this coding, then go through this link

http://www.c-sharpcorner.com/uploadfile/deveshomar/exporting-datatable-to-excel-in-c-sharp-using-interop/

private void exportToExcel(DataTable dt)
{

    /*Set up work book, work sheets, and excel application*/
    Microsoft.Office.Interop.Excel.Application oexcel = new Microsoft.Office.Interop.Excel.Application();
    try
    {
        string path = AppDomain.CurrentDomain.BaseDirectory;
        object misValue = System.Reflection.Missing.Value;
        Microsoft.Office.Interop.Excel.Workbook obook = oexcel.Workbooks.Add(misValue);
        Microsoft.Office.Interop.Excel.Worksheet osheet = new Microsoft.Office.Interop.Excel.Worksheet();


      //  obook.Worksheets.Add(misValue);

        osheet = (Microsoft.Office.Interop.Excel.Worksheet)obook.Sheets["Sheet1"];
        int colIndex = 0;
        int rowIndex = 1;

        foreach (DataColumn dc in dt.Columns)
        {
            colIndex++;
            osheet.Cells[1, colIndex] = dc.ColumnName;
        }
        foreach (DataRow dr in dt.Rows)
        {
            rowIndex++;
            colIndex = 0;

            foreach (DataColumn dc in dt.Columns)
            {
                colIndex++;
                osheet.Cells[rowIndex, colIndex] = dr[dc.ColumnName];
            }
        }

        osheet.Columns.AutoFit();
        string filepath = "C:\\Temp\\Book1";

        //Release and terminate excel

        obook.SaveAs(filepath);
        obook.Close();
        oexcel.Quit();
        releaseObject(osheet);

        releaseObject(obook);

        releaseObject(oexcel);          
    }
    catch (Exception ex)
    {
        oexcel.Quit();          
    }
}
    private void releaseObject(object o) 
    { 
      try 
       { 
          while (System.Runtime.InteropServices.Marshal.ReleaseComObject(o) > 0) { } 
       } 
      catch 
        { 
        } 
      finally 
         { 
       o = null;
          }
         }
-1
Subash B 8 Сен 2016 в 11:41