У меня есть 10k строк и 15 столбцов в моем представлении сетки данных. Я хочу экспортировать эти данные в файл Excel. Я уже пробовал с приведенным ниже кодом.
private void btExport_Click(object sender, EventArgs e)
{
Microsoft.Office.Interop.Excel._Application app = new Microsoft.Office.Interop.Excel.Application();
Microsoft.Office.Interop.Excel._Workbook workbook = app.Workbooks.Add(Type.Missing);
Microsoft.Office.Interop.Excel._Worksheet worksheet = null;
app.Visible = true;
worksheet = workbook.Sheets["Sheet1"];
worksheet = workbook.ActiveSheet;
for(int i=1;i<dataGridView1.Columns.Count+1;i++)
{
worksheet.Cells[1, i] = dataGridView1.Columns[i-1].HeaderText;
}
for (int i=0; i < dataGridView1.Rows.Count-1 ; i++)
{
for(int j=0;j<dataGridView1.Columns.Count;j++)
{
if (dataGridView1.Rows[i].Cells[j].Value != null)
{
worksheet.Cells[i + 2, j + 1] = dataGridView1.Rows[i].Cells[j].Value.ToString();
}
else
{
worksheet.Cells[i + 2, j + 1] = "";
}
}
}
}
Это работает для меня, но требуется много времени для полного процесса экспорта.
Можно ли экспортировать из dataGridView (с 10k строк), чтобы мгновенно перейти к нажатию кнопки?
Кроме этого, когда я попытался скопировать все содержимое dataGridview в клип-панель, а затем вставить его вручную, это произойдет почти мгновенно.
Итак, есть ли способ скопировать все ячейки dataGridView в клип-панель и вставить ее на листы Excel (с форматированием ячейки) на кнопку "<" >
У меня есть код для копирования в буфер обмена, как показано ниже, но я не знаю, как вставить его в новый лист excel, открыв его.
private void copyAllToolStripMenuItem_Click(object sender, EventArgs e)
{
dataGridView1.SelectAll();
DataObject dataObj = dataGridView1.GetClipboardContent();
if (dataObj != null)
Clipboard.SetDataObject(dataObj);
}
Пожалуйста, помогите с примером. Я новичок в С#.