Форматирование ячеек 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
ИИ поможет Вам:
- решить любую задачу по программированию
- объяснить код
- расставить комментарии в коде
- и т.д