`
kiki1120
  • 浏览: 306970 次
  • 性别: Icon_minigender_2
  • 来自: 上海
社区版块
存档分类
最新评论

VB.Net的Font对象转换成Excel的Font对象

    博客分类:
  • .Net
阅读更多

最近用vb.net开发了一个小工具,可以选择字体和颜色,利用自带的FontDialog和ColorDialog实现,然后用获取到的字体及颜色来修改Excel表格样式,Excel的字体对象是Microsoft.Office.Interop.Excel.Font,而字体控件是System.Drawing.Font,颜色控件是System.Drawing.Color,所以在赋值的时候需要进行转换。

 

下面只列出了部分比较重要代码,供以后查阅。

精简后没有调试,不保证能正常运行。

 

 

Dim myFont As System.Drawing.Font		'字体
Dim myColor As System.Drawing.Color		'字体颜色
Dim myCellColor As System.Drawing.Color	'单元格颜色

'打开字体窗口,选择一个字体,设置字形和字号
Dim f As New FontDialog
f.AllowScriptChange = False		'不能选择字符集
f.AllowVerticalFonts = False	'不显示旋转90度的字体
f.ShowEffects = False			'不能设置特殊效果,如下划线、删除线
If f.ShowDialog=DialogResult.OK Then
	myFont=f.Font
End If

'打开颜色窗口,选择一种字体颜色
Dim c As New ColorDialog
If c.ShowDialog = DialogResult.OK Then
	myColor = c.Color
End If

'打开颜色窗口,选择一种单元格颜色
Dim cc As New ColorDialog
If cc.ShowDialog = DialogResult.OK Then
	myCellColor = cc.Color
End If

'设置Excel字体和单元格样式
Dim ExcelApp As New Excel.Application
Dim ExcelBook As Excel.Workbook
Dim ExcelSheet As ExcelWorkSheet
ExcelBook = ExcelApp.Workbooks.Add
ExcelSheet = ExcelBook.ActionSheet
With ExcelSheet.Range("A1","E1")
	.Font.Name = myFont.Name	'设置字体
	.Font.Size = myFont.Size	'设置字号
	If myFont.Style = 3 Then
		'字形是粗斜体
		.Font.FontStyle = Join(Split(myFont.Style.ToString, ", "))
	Else
		'字形是常规、粗体、斜体
		.Font.FontStyle = myFont.Style.ToString
	End If
	.Font.Color = ColorTranslator.ToOle(myColor)	'设置字体颜色
	.Interior.Color = ColorTranslator.ToOle(myCellColor)	'设置单元格填充色
	.Borders.LineStyle = 1
End With
ExcelBook.SaveAs("D:\Book1.xls")
ExcelBook.Close()
ExcelApp.Quit()
ExcelSheet = Nothing
ExcelBook = Nothing
ExcelApp = Nothing

 

分享到:
评论

相关推荐

Global site tag (gtag.js) - Google Analytics