Экспорт Datagridview в Excel с заголовками - PullRequest
0 голосов
/ 05 апреля 2019

Я пытаюсь экспортировать таблицу данных в Excel, но не выяснил, как это сделать с заголовочным текстом, логотипом и именем компании.

Пример Datagridview: Количество продукта Вода 50 Что экспортируется вExcel: Вода 50

Я искал в Интернете, но не нашел ничего, что могло бы мне помочь.

private void copyProductsToClipboard()
{
    ProductsDatabase.SelectAll();
    DataObject dataObj = ProductsDatabase.GetClipboardContent();
    if (dataObj != null)
    Clipboard.SetDataObject(dataObj);
}
private void export_Products_btn_Click(object sender, EventArgs e)
{
    SaveFileDialog sfd = new SaveFileDialog();
    sfd.Filter = "Excel Documents (*.xls)|*.xls";
    sfd.FileName = "Products_Export.xls";
    if (sfd.ShowDialog() == DialogResult.OK)
    {
    // Copy DataGridView results to clipboard
    copyProductsToClipboard();

    object misValue = System.Reflection.Missing.Value;
    Excel.Application xlexcel = new Excel.Application();

    xlexcel.DisplayAlerts = false; // Without this you will get two confirm overwrite prompts
    Excel.Workbook xlWorkBook = xlexcel.Workbooks.Add(misValue);
    Excel.Worksheet xlWorkSheet = (Excel.Worksheet)xlWorkBook.Worksheets.get_Item(1);

    // Format column D as text before pasting results, this was required for my data
    Excel.Range rng = xlWorkSheet.get_Range("D:D").Cells;
    rng.NumberFormat = "@";

    // Paste clipboard results to worksheet range
    Excel.Range CR = (Excel.Range)xlWorkSheet.Cells[1, 1];
    CR.Select();
    xlWorkSheet.PasteSpecial(CR, Type.Missing, Type.Missing, Type.Missing, Type.Missing, Type.Missing, true);

    // For some reason column A is always blank in the worksheet. ¯\_(ツ)_/¯
    // Delete blank column A and select cell A1
    Excel.Range delRng = xlWorkSheet.get_Range("A:A").Cells;
    delRng.Delete(Type.Missing);
    xlWorkSheet.get_Range("A2").Select();

    // Save the excel file under the captured location from the 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);

    // Clear Clipboard and DataGridView selection
    Clipboard.Clear();
    ProductsDatabase.ClearSelection();

    // Open the newly saved excel file
    if (File.Exists(sfd.FileName))
    System.Diagnostics.Process.Start(sfd.FileName);
    }
}

И с логотипом и названием компании.Заранее спасибо

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...