复制文件并以其他格式保存

时间:2011-06-10 17:20:40

标签: .net vb.net

我正在将一个文件从sample.csv复制到new.csv。复制后,我需要打开new.csv并将其保存为new.xls,工作表名称为“Newsheet”。我成功复制但无法继续打开/保存它。

这是我的代码:

    Dim ioFile As New System.IO.StreamReader("C:\sample.csv")      
    Dim ioLine As String
    Dim ioLines As String      
    ioLine = ioFile.ReadLine     
    ioLines = "ID,Name,Number,Amount"
    ioLines &= vbCrLf & ioLine 
    While Not ioLine = ""         
        ioLine = ioFile.ReadLine         
        ioLines = ioLines & vbCrLf & ioLine      
    End While     
    Dim ioWriter As New System.IO.StreamWriter("C:\new.csv")     
    ioWriter.WriteLine(ioLines)     
    ioFile.Close()     
    ioWriter.Close()

2 个答案:

答案 0 :(得分:0)

如果您需要将csv导入Exel并且可以使用excel,则可以使用以下代码进行修改。如你所见,我刚录制了一个宏。但是,我使用宏录制为我提供了更复杂的办公自动化任务。只要你有excel库,你需要做的就是添加一个引用来打开它,然后从下面提取你需要的代码。

Sub Macro1()
'
' Macro1 Macro
'

'
    With ActiveSheet.QueryTables.Add(Connection:="TEXT;H:\My Documents\InCps.TXT" _
        , Destination:=Range("$A$1"))
        .Name = "InCps"
        .FieldNames = True
        .RowNumbers = False
        .FillAdjacentFormulas = False
        .PreserveFormatting = True
        .RefreshOnFileOpen = False
        .RefreshStyle = xlInsertDeleteCells
        .SavePassword = False
        .SaveData = True
        .AdjustColumnWidth = True
        .RefreshPeriod = 0
        .TextFilePromptOnRefresh = False
        .TextFilePlatform = 437
        .TextFileStartRow = 1
        .TextFileParseType = xlDelimited
        .TextFileTextQualifier = xlTextQualifierDoubleQuote
        .TextFileConsecutiveDelimiter = False
        .TextFileTabDelimiter = False
        .TextFileSemicolonDelimiter = False
        .TextFileCommaDelimiter = True
        .TextFileSpaceDelimiter = False
        .TextFileColumnDataTypes = Array(1)
        .TextFileTrailingMinusNumbers = True
        .Refresh BackgroundQuery:=False
    End With
End Sub

答案 1 :(得分:0)

从基本文本转换为Excel需要比文件扩展名更改更多的工作。

我会看一下NPOI库,它允许您轻松创建Excel文档(以及其他类型)并且是开源的。它易于使用,您应该能够快速完成工作解决方案。