.NET Develop/Develop
[vb.NET] Tab 파일을 XLSX로 변환
김가별
2013. 9. 30. 13:48
[vb.NET] Tab 파일을 XLSX로 변환
TAB 형식의 파일을 Excel 2007 / 2010 / 2013용 XLSX 파일로 변환해 주는 간단한 유틸입니다.
필요에 의해서 만들어 보았습니다.
웬지 있을것 같아서 10여분 서치해 봤는데 딱 맘에들게 기능하는게 안찾아져서..그냥 후딱 만들었습니다.
파일들 또는 tab 파일이 들어있는 폴더채로 드래그하여 폼에 드롭하면 tab파일 옆에 xlsx로 일괄 변환이 됩니다..
아래 보시다시피 별다른 옵션이나 기능은 없습니다^^;
닷넷프레임워크2.0과 엑셀2007 이상이 설치되어 있으면 됩니다..
조금 변형하면 csv, txt 파일등도 같은방식으로 변환할 수 있을 것 같습니다.
Imports System.IO Imports XL = Microsoft.Office.Interop.Excel Public Class frmMain Private xApp As XL.Application Private xWB As XL.Workbook Private xWS As XL.Worksheet '****************************************************************************************************************************************************** ' 파일드롭 처리 '****************************************************************************************************************************************************** Private Sub frmMain_DragDrop(sender As Object, e As System.Windows.Forms.DragEventArgs) Handles Me.DragDrop Dim FileNames As String() = e.Data.GetData(DataFormats.FileDrop, False) For Each fNames As String In FileNames Dim fInfo As DirectoryInfo = New DirectoryInfo(fNames) If fInfo.Exists Then Dim fList As FileInfo() = fInfo.GetFiles() For Each fItem As FileInfo In fList If fItem.Extension = ".tab" Then Try tabtoxlsx(fItem.FullName) Catch ex As Exception End Try End If Next Else Dim fin As FileInfo = New FileInfo(fNames) If fin.Extension = ".tab" Then Try tabtoxlsx(fNames) Catch ex As Exception End Try End If End If Next MessageBox.Show("파일 변환이 완료되었습니다.") End Sub Private Sub frmMain_DragOver(sender As Object, e As System.Windows.Forms.DragEventArgs) Handles Me.DragOver e.Effect = DragDropEffects.All End Sub Private Sub frmMain_Load(sender As System.Object, e As System.EventArgs) Handles MyBase.Load xApp = New XL.Application 'xApp.Visible = True xApp.IgnoreRemoteRequests = True xApp.ScreenUpdating = False xApp.DisplayAlerts = False End Sub Private Sub frmMain_Disposed(sender As Object, e As System.EventArgs) Handles Me.Disposed Try : xWB.Close(False) : Catch ex As Exception : End Try Try xApp.ScreenUpdating = True xApp.DisplayAlerts = True Catch ex As Exception : End Try Try : xApp.IgnoreRemoteRequests = False : Catch ex As Exception : End Try Try : xApp.Quit() : Catch ex As Exception : End Try End Sub '****************************************************************************************************************************************************** ' 탭파일을 열어 엑셀파일로 저장. 형식은 모두 텍스트형식으로 읽는다. '****************************************************************************************************************************************************** Private Sub tabtoxlsx(tabFileNM As String) Dim ColArray(0 To 1000, 0 To 1) For x = 0 To 1000 ColArray(x, 0) = x + 1 ColArray(x, 1) = 2 Next xApp.Workbooks.OpenText(tabFileNM, Origin:=949, StartRow:=1, DataType:=XL.XlTextParsingType.xlDelimited, Tab:=True, FieldInfo:=ColArray) xWB = xApp.Workbooks(1) xWS = xWB.Sheets(1) xWS.Cells.Font.Size = 10 With xWS.Rows(2) '.Interior.Pattern = XL.Constants.xlSolid .Cells.Interior.Color = 14211289 .Font.Bold = True End With xWS.Rows(1).Delete(XL.XlDirection.xlUp) xApp.ActiveWindow.SplitRow = 1 xApp.ActiveWindow.FreezePanes = True xWB.SaveAs(tabFileNM.Replace(".tab", ".xlsx"), XL.XlFileFormat.xlWorkbookDefault) xWB.Close(False) End Sub End Class