作者WithoutTears (伤心无话)
看板Visual_Basic
标题[.NET] 怎麽把excel的资料存成文字档
时间Thu Aug 2 21:48:24 2007
因为用VB处理excel储存格的速度太慢, 所以我想先存成文字档处理完
再回头贴上VB
我查过MSDN, 想说应该是用saveas加上指定fileformat为文字档就可以成功储存
但在正式实做的时候, 一直出现错误: HRESULT: 0x800A03EC
而且查MSDN HRESULT: 0x800A03EC也查不到什麽资料, google的说法则是众说纷纭
请问有没有EXCEL存成文字档的方法呢?
以下是我的程式码
Module PubVariables
Public xlApp As Microsoft.Office.Interop.Excel.Application = _
New Microsoft.Office.Interop.Excel.Application '开启一个Excel应用程式
'供所有的form都可以使用
End Module
'另一个form里
'让使用者决定要开几个工作表
Private Sub BtnExcel_Click(ByVal sender As System.Object, _
ByVal e As System.EventArgs) Handles BtnExcel.Click
Dim xl2input As Microsoft.Office.Interop.Excel.Workbook
xlApp.SheetsInNewWorkbook = CInt(TxtNo.Text)
xl2input = CType(xlApp.Workbooks.Add, _
Microsoft.Office.Interop.Excel.Workbook)
xlApp.Application.Visible = True
End Sub
'开完之後待使用者输入资料完毕之後按下另一个钮让VB做之後的处理
Private Sub BtnProceed_Click(ByVal sender As System.Object, _
ByVal e As System.EventArgs) Handles BtnProceed.Click
Dim i As Integer
Dim xl2input As Microsoft.Office.Interop.Excel.Workbook
Dim xlsheet As Microsoft.Office.Interop.Excel.Worksheet
xl2input = CType(xlApp.Workbooks(1), _
Microsoft.Office.Interop.Excel.Workbook)
For i = 1 To xlApp.Workbooks.Count
'将所有的工作表存成文字档
xlsheet = CType(xl2input.Worksheets(i), _
Microsoft.Office.Interop.Excel.Worksheet)
'在这一行会出现错误
xlsheet.SaveAs(xlsheet.Name, _
FileFormat:=_
Microsoft.Office.Interop.Excel.XlFileFormat.xlTextWindows,_
TextCodepage:=True, Local:=True)
Next
End Sub
'另一个函式是开启已有的档案进行处理, 也是在存档时会出错
Private Sub MnuItmCnvFile_Click(ByVal sender As System.Object, _
ByVal e As System.EventArgs) Handles MnuItmCnvFile.Click
Dim xl2cnvt As Microsoft.Office.Interop.Excel.Workbook
Dim xlsheet As Microsoft.Office.Interop.Excel.Worksheet
Dim i As Integer
OpnExistExcel.InitialDirectory = "我的文件"
OpnExistExcel.Filter = "Excel 活页簿 (*.xls)|*.xls"
'Try '开启档案
If OpnExistExcel.ShowDialog() = Windows.Forms.DialogResult.OK Then
xl2cnvt = xlApp.Application.Workbooks.Open(OpnExistExcel.FileName)
'依序存档
For i = 1 To xl2cnvt.Worksheets.Count
xlsheet = CType(xl2cnvt.Worksheets(i), _
Microsoft.Office.Interop.Excel.Worksheet)
'在这一步就当机了
xlsheet.SaveAs(xlsheet.Name & ".txt", _
FileFormat:=_
Microsoft.Office.Interop.Excel.XlFileFormat.xlTextWindows, _
TextCodepage:=True, Local:=True)
Next
End If
'Catch ex As Exception
'这边因为不知道怎麽处理所以先用成注解
'End Try
End Sub
--
※ 发信站: 批踢踢实业坊(ptt.cc)
◆ From: 61.228.60.124