版权声明:本文为博主原创文章,转载请在显著位置标明本文出处以及作者网名,未经作者允许不得用于商业目的。
如果是一般的打开某个Excel文件修改后保存到原文件或者新的文件,在 Excel.Application.Quit() 前直接使用
Workbook.Save() 或 Workbook.SaveAs(文件名称) 就可以了。
但是对于要把数据(并非通过打开Excel文件获得的数据)保存成Excel文件,那么可以按照以下步骤:
1、新建了一个Application对象:
Dim xls As New Excel.Application
2、新建工作簿并添加到创建的Application对象:
Dim Wbook As Excel.Workbook
Wbook = xls.Workbooks.Add
3、 使用原有的工作表,一般默认创建Wbook后会有sheet1、sheet2、sheet3三个工作表,可以使用上一节方法指定一个工作表写数据。
或者新建工作表:
Dim Wsheet As Excel.Worksheet
Wsheet = Wbook.Worksheets.Add
并按需要指定工作表名称,如不指定,那么新工作表默认名称为 Sheet4:
Wsheet.Name = "电脑销售表"
4、读取现有数据并写入单元格,需要注意的是Excel单元格的起始序号为1,而一般vb.net中数组等的起始序号为0:
Wsheet.Cells(i行号,列号).value = "值"
5、保存工作簿
Workbook.SaveAs(文件名称)
6、最后,别忘了关闭打开的 Excel:
Excel.Application.Quit()
具体代码如下:
'另存为
Private Sub Button2_Click(sender As Object, e As EventArgs) Handles Button2.Click
Dim filename As String
Dim sfd As New SaveFileDialog()
sfd.Filter = "表格文件|*.xls;*.xlsx"
If sfd.ShowDialog <> DialogResult.OK Then
Exit Sub
Else
filename = sfd.FileName
End If
Dim xls As New Excel.Application
Dim Wbook As Excel.Workbook
Wbook = xls.Workbooks.Add
Dim Wsheet As Excel.Worksheet
Wsheet = Wbook.Worksheets.Add
Wsheet.Name = "电脑销售表"
If lvExcel.Columns.Count > 1 Then
For i As Integer = 0 To lvExcel.Columns.Count - 1
Wsheet.Cells(1, i + 1).value = lvExcel.Columns(i).Text
Next
End If
If lvExcel.Items.Count > 0 Then
For i As Integer = 0 To lvExcel.Items.Count - 1
Dim pos As Integer = 0
For Each subLvText As ListViewItem.ListViewSubItem In lvExcel.Items(i).SubItems
pos += 1
If subLvText.Text = "(空)" Then
Wsheet.Cells(i + 2, pos).value = "" '+2是因为excel表格第一行从1开始,而表头已经占了第一行,所以写入的数据从第2行开始。
Else
Wsheet.Cells(i + 2, pos).value = subLvText.Text
End If
Next
Next
End If
Wbook.SaveAs(filename)
xls.Quit()
MessageBox.Show("保存完毕")
End Sub
保存的Excel文件如图:
由于.net平台下C#和vb.NET很相似,本文也可以为C#爱好者提供参考。
学习更多vb.net知识,请参看 vb.net 教程 目录