在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
- 如何将特定的列和行的Excel数据导入到datagridview WITHOUT OLEDB在C#
- 旧格式或无效的types库。 (从HRESULTexception:0x80028018(TYPE_E_INVDATAREAD))
- DataGridView复制粘贴(带有样式,背景颜色…)
- 将excel数据粘贴到空白DataGridView – 索引超出范围的exception
- 使用VB.Net在Datagridview中导入Excel数据
- 将导出的值(时间)从datagridview转换为excel
- 如何使用VB.Net在Excel中解锁列?
- 如何从Excel文件中读取C#中的未来date?
- 无法通过在WinForm应用程序中使用BindingList将数据绑定到DataGridView