Сохранение данных в Excel - C#

Узнай цену своей работы

Формулировка задачи:

Пытаюсь сохранить данные в Excel следующим образом:
string fileName = "";
Thread thread = new Thread(delegate()
{
        double tmp = Convert.ToDouble(Storage.Stations.Stations[id].ExpectedExtraPower[addRow]);
        tmp = Math.Round(tmp, 2);
        [B]objWorkSheet.Cells[numRow, GetIndexBySymbol('S')] = tmp;[/B]
});
if (Storage.SaveSameFile)
    fileName = Storage.ThroughPutTablesFileName;
else
{
    SaveFileDialog sfd = new SaveFileDialog();
    sfd.OverwritePrompt = false;
    if (sfd.ShowDialog() == System.Windows.Forms.DialogResult.OK)
        fileName = sfd.FileName;
    else
        return;
}
thread.Start();
Однако никакого сохранения не происходит. Если же вставить после выделенной жирным шрифтом строки:
Storage.ObjWorkbook.GetType().InvokeMember("Close", BindingFlags.InvokeMethod, null, Storage.ObjWorkbook, new object[] { true });
то есть закрыть workbook, то появится дополнительное окно с выбором файла на сохранение и в нем если выбрать тот же самый файл что был выбран в моем savefiledialog то опять же эффекта не произойдет, а если выбрать другой файл, то сохранение произойдет как надо. Есть ли у кого-нибудь какие-нибудь мысли насчет этого? Надеюсь понятно объяснил

Решение задачи: «Сохранение данных в Excel»

textual
Листинг программы
//Создаём приложение
Storage.ObjExcel = new Microsoft.Office.Interop.Excel.Application();
//Открываем книгу.
Storage.ObjWorkbook =
Storage.ObjExcel.Workbooks.Open(fileName, 0, true, 5, "", "",
true, Microsoft.Office.Interop.Excel.XlPlatform.xlWindows, "",
true, true, 0, true, true, false);
//Выбираем таблицу(лист).
Storage.ObjWorksheet = (Microsoft.Office.Interop.Excel.Worksheet)Storage.ObjWorkbook.Sheets[1];
return Storage.ObjWorksheet;

ИИ поможет Вам:


  • решить любую задачу по программированию
  • объяснить код
  • расставить комментарии в коде
  • и т.д
Попробуйте бесплатно

Оцени полезность:

8   голосов , оценка 3.75 из 5