0

50 個のテキスト ファイルを含むフォルダーがあります。これらのテキスト ファイルを読み取ってテーブルに変換できる C# または .NET プログラムが必要です。主キーをテキスト ファイル自体の名前にする必要があります。

//sample contents of my 1.txt file is as follows
atro
astrology
king
moon
monkey
seven
skin //

すべてのテキスト ファイルには、同じ形式の情報が含まれています。上記のデータ形式のテキスト ファイルを読み取ることができるマクロを作成しましたが、Excel でマクロを実行しようとすると、メモリ不足を示すエラーが表示されます。

enter code here

Sub rameshc() ' ' ramesh マクロ ' ' キーボード ショートカット: Ctrl+k ' Dim nxt_row As Long

 'Change Path
Const strPath As String = "C:\Users\roo\Desktop\Volumes\eGo\tags\0\"
Dim strExtension As String

 'Stop Screen Flickering
Application.ScreenUpdating = False

ChDir strPath

 'Change extension
strExtension = Dir(strPath & "*.txt")

Do While strExtension <> ""

     'Adds File Name as title on next row
    Range("A65536").End(xlUp).Offset(1, 0).Value = strExtension

     'Sets Row Number for Data to Begin
    nxt_row = Range("A65536").End(xlUp).Offset(1, 0).Row

     'Below is from a recorded macro importing a text file
    With ActiveSheet.QueryTables.Add(Connection:= _
        "TEXT;" & strPath & strExtension, Destination:=Range("$A$" & nxt_row))
        .Name = strExtension
        .FieldNames = True
        .RowNumbers = False
        .FillAdjacentFormulas = False
        .PreserveFormatting = True
        .RefreshOnFileOpen = False
        .RefreshStyle = xlInsertDeleteCells
        .SavePassword = False
        .SaveData = True
        .AdjustColumnWidth = True
        .RefreshPeriod = 0
        .TextFilePromptOnRefresh = False
        .TextFilePlatform = 850
        .TextFileStartRow = 1
        .TextFileParseType = xlDelimited
        .TextFileTextQualifier = xlTextQualifierDoubleQuote
         'Delimiter Settings:
        .TextFileConsecutiveDelimiter = True
        .TextFileTabDelimiter = True
        .TextFileSemicolonDelimiter = True
        .TextFileCommaDelimiter = True
        .TextFileSpaceDelimiter = True
        .TextFileOtherDelimiter = "="

        .TextFileTrailingMinusNumbers = True
        .Refresh BackgroundQuery:=False
    End With

    strExtension = Dir
Loop

Application.ScreenUpdating = True

End Sub Sub ramesh() ' ' ramesh Macro ' ' キーボード ショートカット: Ctrl+l ' Selection.Copy ActiveCell.Offset(0, 1).Range("A1").Select Selection.PasteSpecial Paste:=xlPasteAll, Operation:= xlNone、SkipBlanks:= _ False、Transpose:=True End Sub

4

1 に答える 1

1

最速の方法は次のとおりです。

  1. コンソール アプリケーションを作成します。フォルダー内のファイルを検索します。http://msdn.microsoft.com/en-us/library/vstudio/ezwyzy7b.aspx
  2. System.Data.SqlClientを使用して直接接続します。http://www.bigresource.com/MS_SQL--problem-with-simple-sqlclient-database-accesses--AVufrVBE.html
  3. 挿入ステートメントを記述します。ファイルを繰り返します。そして、それぞれに挿入を行います。http://www.w3schools.com/sql/sql_insert.asp

ファイルを読み取るには、次のようなものを使用します。

string[] lines = File.ReadAllLines("C:/YourFile.txt");

        foreach (var line in lines)
        {
            *Insert Statement*
        }
于 2013-02-25T12:47:16.207 に答える