Выход - использование буфера обмена или есть другой способ? Что нашел сам:
SaveFileDialog sfd = new SaveFileDialog();
sfd.Filter = "Excel Documents (*.xls)|*.xls";
sfd.FileName = "*.xls";
if (sfd.ShowDialog() == DialogResult.OK)
{
// Скопировать результаты DataGridView в буфер обмена
copyAlltoClipboard();
object misValue = System.Reflection.Missing.Value;
Excel.Application xlexcel = new Excel.Application();
xlexcel.DisplayAlerts = false; // Без этого вы получите два подтверждения перезаписи
Excel.Workbook xlWorkBook = xlexcel.Workbooks.Add(misValue);
Excel.Worksheet xlWorkSheet = (Excel.Worksheet)xlWorkBook.Worksheets.get_Item(1);
// Название листа Excel
xlWorkSheet.Name = "Title";
// Вставка скопированного текста в область
Excel.Range CR = (Excel.Range)xlWorkSheet.Cells[8, 2];
CR.Select();
xlWorkSheet.PasteSpecial(CR, Type.Missing, Type.Missing, Type.Missing, Type.Missing, Type.Missing, true);
// Выделяем ячейку A1
xlWorkSheet.get_Range("A1").Select();
// Сохраните файл excel под местоположением из SaveFileDialog
xlWorkBook.SaveAs(sfd.FileName, Excel.XlFileFormat.xlWorkbookNormal, misValue, misValue, misValue, misValue, Excel.XlSaveAsAccessMode.xlExclusive, misValue, misValue, misValue, misValue, misValue);
xlexcel.DisplayAlerts = true;
xlWorkBook.Close(true, misValue, misValue);
xlexcel.Quit();
releaseObject(xlWorkSheet);
releaseObject(xlWorkBook);
releaseObject(xlexcel);
// Очистить буфера обмена и DataGridView
Clipboard.Clear();
dataGridView1.ClearSelection();
// Откройте сохраненный файл excel
if (File.Exists(sfd.FileName))
System.Diagnostics.Process.Start(sfd.FileName);
}
}
private void releaseObject(object obj) // Освобождение памяти
{
try
{
System.Runtime.InteropServices.Marshal.ReleaseComObject(obj);
obj = null;
}
catch (Exception ex)
{
obj = null;
MessageBox.Show("Exception Occurred while releasing object " + ex.ToString());
}
finally
{
GC.Collect();
}
}
private void copyAlltoClipboard() // Копирование в буфер
{
dataGridView1.SelectAll();
DataObject dataObj = dataGridView1.GetClipboardContent();
if (dataObj != null)
Clipboard.SetDataObject(dataObj);
}
Оборудование для ресторана: новинки профессиональной кухонной техники
Частный дом престарелых в Киеве: комфорт, забота и профессиональный уход
Необходимо сделать приложение, в котором по нажатию на кнопку к ней протягивалась бы ломанная линия, решил сделать это через Polyline
Доброго времени сутокЕсть код, в котором вызывается метод Object