Форматирование ячеек Excel - Visual Basic .NET

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

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

Экспортирую данные из DataGridView в Excel:
И теперь мне нужно следующее: 1.что бы все используемые ячейки имели все границы , я так понимаю что по окончанию экспорта нужно задать регион и задать ему Borders.LineStyle = True ; 2.что бы текст в первой строке (шапка таблицы) был "жирным"; 3. что бы цвет фона в первой строке (шапка таблицы) был серым; 4.что бы ширина столбцов автоматически устанавливалась по макс. содержимому ячейки, думаю что нужно как то программно выделить регион и задать ему Columns.AutoFit; 5.таблица DataGridView может содержать помимо текстовых данных ещё и рисунки, как экспортировать грид с рисунками в Excel. Пытался сам разобраться, но не смог. Буду благодарен за помощь.

Решение задачи: «Форматирование ячеек Excel»

textual
Листинг программы
Private Sub Button1_Click(sender As System.Object, e As System.EventArgs) Handles Button1.Click
    DataGridView1.ClipboardCopyMode = DataGridViewClipboardCopyMode.EnableAlwaysIncludeHeaderText
    Dim eApp As New XLS.Application
    Dim eBooks As XLS.Workbooks = eApp.Workbooks
    Dim eBook As XLS.Workbook = eBooks.Add
    Dim eSheet As XLS.Worksheet = eBook.ActiveSheet
    Dim eRange As XLS.Range = eSheet.Range("C2")
    eSheet.Name = "Test"
    DataGridView1.SelectAll()
    If DataGridView1.GetCellCount(DataGridViewElementStates.Selected) > 0 Then
        Try
            Clipboard.Clear()
            Clipboard.SetDataObject(DataGridView1.GetClipboardContent(), False)
            eRange.PasteSpecial(Microsoft.Office.Interop.Excel.XlPasteType.xlPasteAll, Microsoft.Office.Interop.Excel.XlPasteSpecialOperation.xlPasteSpecialOperationAdd)
            Dim eRng As XLS.Range = eSheet.UsedRange
            eRng.AutoFormat(32)
            'добавляем недостающее
            With eRng.Borders(7) 'xlEdgeLeft = 7
                .LineStyle = 1 'xlContinuous = 1
                .Weight = 2 'xlThin = 2
                .ColorIndex = -4105 'xlAutomatic = -4105
            End With
            With eRng.Borders(10) 'xlEdgeRight = 10
                .LineStyle = 1
                .Weight = 2
                .ColorIndex = -4105
            End With
            With eRng.Borders(11) 'xlInsideVertical = 11
                .LineStyle = 1
                .Weight = 2
                .ColorIndex = -4105
            End With
            With eRng.Borders(12) 'xlInsideHorizontal = 12
                .LineStyle = 1
                .Weight = 2
                .ColorIndex = -4105
            End With
            eSheet.Range("A1").Select()
        Catch ex As Exception
            MsgBox(ex.Message)
        End Try
    End If
    eApp.Visible = True
End Sub

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


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

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

13   голосов , оценка 4.154 из 5