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 Macro ' ' 键盘快捷键: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-acces--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 回答