码迷,mamicode.com
首页 > 其他好文 > 详细

Excel开发学习笔记:读取xml文件及csv文件

时间:2015-02-07 22:58:11      阅读:160      评论:0      收藏:0      [点我收藏+]

标签:

读取xml文件
有好多种读取xml的方式,xmlDOM比较常见,我使用了另外一种,它以数据流的方式打开文件并读取内容
Imports System.Xml  
Dim group As New List(Of String)  
Using reader As XmlReader = XmlReader.Create(OpenFileDialog2.FileName)  
    While reader.ReadToFollowing("group")  
        reader.MoveToAttribute("name")  
        group.Add(reader.Value)  
    End While  
End Using

 


读取csv文件
常见的csv文件以逗号‘,‘分割每行的字段,如果字段中正好也有‘,‘,则需要用双引号""括起来,比如下面2行的情况。这给解析字段带来了麻烦,不能简单的调用string的split函数。
"","","","","Case_1,Case_2,Case_3","Case_1,Case_2,Case_3","Case_1,Case_2,Case_3","Case_1,Case_2,Case_3",
project,Comm,factor5%(dB),"[0,Infinity]",-2.0599684918456296 ,-2.0599684918456296 ,-2.0599684918456296 ,-2.0599684918456296 ,

幸运的是遇到的需求中并不关注带双引号""的字段,所以对字符串进行了预处理,把""中的‘,‘替换掉,使之不对用‘,‘分割产生干扰。

 

    dataFileStr是string数组,保存了csv文件的完整内容  
    Dim dataFileStr As String() = IO.File.ReadAllLines(file)file是文件路径的字符串  
    转换格式
    ChangeCsvFormat(dataFileStr)  
    分割第一行的字段  
    Dim titleEle As String() = dataFileStr(0).Split(New Char() {","c})  
                          
    修改读取的csv内容,把""中间的逗号替换为~号,方便后续用逗号分词  
    Private Sub ChangeCsvFormat(ByRef csvLines As String())  
        For i As Long = 0 To csvLines.Count - 1  
            Dim begin As Integer = -1, endIdx As Integer = -1  
            Dim cnt As Integer = 0  
            Do  
                cnt += 1  
                If cnt Mod 2 = 0 Then  
                    endIdx = csvLines(i).IndexOf("""", begin + 1)  
                    If endIdx > 0 Then  
                        Dim orgSub As String = csvLines(i).Substring(begin, endIdx - begin + 1)  
                        Dim newSub As String = orgSub.Replace(",""~")  
      
                        csvLines(i) = csvLines(i).Replace(orgSub, newSub)  
                    End If  
                Else  
                    endIdx += 1  
                    begin = csvLines(i).IndexOf("""", endIdx)  
                End If  
            Loop Until begin < 0 Or endIdx < 0  
        Next  
    End Sub 

 

Excel开发学习笔记:读取xml文件及csv文件

标签:

原文地址:http://www.cnblogs.com/pop-lar/p/4279480.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!