在VB.NET中格式化Excel

我使用ClipboardCopyMode在Excel中导出DataGridViews。 但是,我想格式化标题和单元格宽度/高度,因为单元格不正常调整。

另外,我想在DataGridView中添加一些数据。

这是我有的子代码:

Dim appExcel As Excel.Application Dim wbExcel As Excel.Workbook System.Threading.Thread.CurrentThread.CurrentCulture = System.Globalization.CultureInfo.CreateSpecificCulture("es-US") If Combo.SelectedValue.ToString().Trim() = "Something" Then dgv.SelectAll() dgv.ClipboardCopyMode = DataGridViewClipboardCopyMode.EnableAlwaysIncludeHeaderText Clipboard.SetDataObject(dgv.GetClipboardContent()) End If appExcel = New Excel.Application appExcel.SheetsInNewWorkbook = 1 wbExcel = appExcel.Workbooks.Add appExcel.Visible = True wbExcel.Worksheets(1).Range("A3").Select() wbExcel.Worksheets(1).Paste() 

我如何做这些事情,美化我的导出的Excel?

提前致谢

要设置单元格的样式,可以创build一个Excel.Style并将其应用于范围。 首先,您需要获得对工作表的引用,如:

 Dim xlWorksheet As Excel.Worksheet = wbExcel.Worksheets(1) 

然后创build样式:

 Dim RptHeader As Excel.Style = xlWorksheet.Application.ActiveWorkbook.Styles.Add("RptHeader") RptHeader.Font.Bold = True RptHeader.Font.Size = 14 RptHeader.Interior.Color = System.Drawing.ColorTranslator.ToOle(System.Drawing.Color.LightSteelBlue) RptHeader.HorizontalAlignment = Excel.XlHAlign.xlHAlignCenter 

然后设置一个范围/单元格的样式(对于一个范围,只需使用类似xlWorksheet.Range(“A1:A2”)。Style):

 xlWorksheet.Cells(1, 1).Style = "RptHeader" 

…至于单元格宽度/高度,基本的语法如下所示:

 xlWorksheet.Columns(1).EntireColumn.ColumnWidth = 25 xlWorksheet.Rows(1).RowHeight = 25 

当你说栏目不是“正常调整”的时候,我感觉到你正在谈论的是autofit,也可以这样来完成:

 xlWorksheet.Range("A:XFD").EntireColumn.AutoFit() 

要从datagridview中添加不属于您的副本的数据,只需将单元格的值设置为您想要的值:

 xlWorkSheet.Cells(1, 2) = "1234" '1 being the row-index, 2 the column-index