TAB to XLSX.exe

 

 

[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

 

 

+ Recent posts