赞
踩
决定使用微软自带的控件 ,开发机器安装的是office2003,所以引用的是 Excel 11.0 objcet liberay
因为是winform程序,所以这个组件的要求是执行程序的机器必须安装相应版本的office2003.
以下是建立一个新的工作表类代码:
Dim ac As Microsoft.Office.Interop.Excel.Application = New Excel.Application()
If ac Is System.DBNull.Value Then
MessageBox.Show("没有安装office,或版本不正确")
Return
End If
ac.Visible = False
ac.DisplayAlerts = False
ac.ScreenUpdating = False
Dim wkbook As Excel.Workbook = ac.Workbooks.Add(True)
Dim wksheet As Excel.Worksheet = wkbook.ActiveSheet
后边就可以以这个wksheet为基础进行各种写操作了。
这个微软的控件的最大好处就是功能非常强大,而且使用起来感觉比较合理。(后边会有比较)
以下是设置表格样式功能,可以像下边这样直接定义一个指定区域的样式,也可以定义单个cell的样式。
'''''设置表头
wksheet.Cells(3, 1) = "测试表头"
Dim toprange As Excel.Range = wksheet.Range(wksheet.Cells(3, 1), wksheet.Cells(3, 7))
toprange.MergeCells = True
toprange.RowHeight = 30
toprange.VerticalAlignment = Excel.XlVAlign.xlVAlignCenter
toprange.HorizontalAlignment = Excel.XlVAlign.xlVAlignCenter
toprange.Font.Size = 16
toprange.Font.Bold = True
最后可以将文件保存
ac.SaveAs("filenam")
解决方法是 自行添加一个SaveFileDialog控件。
然后
SaveFileDialog1.DefaultExt = "xls"
SaveFileDialog1.Filter = "Excel文件|*.xls"
SaveFileDialog1.FileName = "Shee1.xls"
If SaveFileDialog1.ShowDialog() = Windows.Forms.DialogResult.OK Then
wkbook.SaveCopyAs(SaveFileDialog1.FileName)
End If
这样可以就可以了。
Dim ps() As System.Diagnostics.Process = System.Diagnostics.Process.GetProcesses()
For i As Int16 = 0 To ps.Length - 1
If (ps(i).ProcessName.ToUpper() = "EXCEL") Then
ps(i).Kill()
End If
Next
不过这个方法确实解决了当前问题。
最后一个问题就是微软这个组件功能强大,但是导出速度相当的慢,因为很多地方都要控制样式。
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。