网站建设资讯

NEWS

网站建设资讯

VB.net解析csv VBNet

vb如何实时读取csv文件?

给你一段VB.net读取csv文件的代码把。

创新互联公司坚持“要么做到,要么别承诺”的工作理念,服务领域包括:成都网站设计、网站制作、企业官网、英文网站、手机端网站、网站推广等服务,满足客户于互联网时代的临泉网站设计、移动媒体设计的需求,帮助企业找到有效的互联网解决方案。努力成为您成熟可靠的网络建设合作伙伴!

Imports System.IO

Imports System.Collections.Generic

Module Module1

Public CSV数据 As List(Of List(Of String))

''' summary

''' 从指定路径的文件读取内容,并分析出其中每行含有分隔符的数据,存到CSV数据中。

''' para调用的时候使用CSV数据(5)(0)表示第6条记录的第1个数据/para

''' /summary

''' param name="文件路径"必需。一个[String]表达式。要读取的文件路径。/param

''' returns返回是否读取成功/returns

''' remarks/remarks

Public Function 读取(ByVal 文件路径 As String) As Boolean

Dim 文件读取器 As StreamReader = New StreamReader(文件路径)

Dim 语句 As String

Dim t成功 As Boolean = True

Dim 分隔符 As Char = ";"

CSV数据 = New List(Of List(Of String))

While Not 文件读取器.EndOfStream

Try

语句 = 文件读取器.ReadLine

'分析语句后判断类型

If 语句.Contains(分隔符) Then

Dim array = 语句.Split(分隔符)

If array IsNot Nothing Then

CSV数据.Add(array.ToList())

End If

End If

Catch ex As Exception

t成功 = False

End Try

End While

Return t成功

End Function

End Module

你上面的数据执行后,将会保存到一个List嵌套List的String组中。

自己转化为数字再进行操作把。

Dim 数字 = Convert.ToDecimal(CSV数据(5)(0))

请教vb.net 读csv 文件,搜索表示指定行

CSV文件特征是每行一条记录,字段用逗号分开。你只需要逐行处理,将每行文本用逗号切分得到数组array,然后判断array[0]是否等于"bbb",如果相等则array[1]就是”4561234567890“;如果不等则继续处理下一行。

没怎么用过VB,下面给出C#代码:

string FindString(string filename, string title){ FileStream stream = null; try { stream = File.OpenRead(filename); StreamReader reader = new StreamReader(stream, Encoding.Default);

string result = null;//存储查找的结果 while (!reader.EndOfStream) { //读取一行 string strLine = reader.ReadLine(); string[] array = strLine.Split(','); if (array == null || array.Length 1)//该行无效 continue; if (string.Compare(array[0], title, false) == 0) {//找到了 return array[1]; } } } catch (Exception ex) { //出错了 return null; } finally { if (stream != null) stream.Close(); }

//到这里说明没找到 return null;}void Test(){ string result = FindString(@"C:\demo.csv", "bbb");}

vb.net 怎么生成csv文件与怎么读取csv文件

CSV文件,在EXCEL里可以直接生成与读取。

可以通过VB.net去操作,打开EXCEL文件,去完成上述操作,而更为简单的办法是直接当做操作文本文件(TXT文件)就可以,因为用记事本软件,打开CSV文可以发现,其实际上是一个行内数据之间用逗号分隔的格式文件。

下面给出例子:

在窗体上添加两个多行文本框,两个按钮,两个文本框一个用来输入生成CSV文件的数据,另一个用来读取显示CSV文件的数据;两个按钮,一个完成生成CSV文件的代码,另一个完成读取CSV文件的代码;具体代码如下:

Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click

'创建(写入)一个文本文件

Dim MyStream As New System.IO.FileStream(Application.StartupPath "\Ssk.CSV", System.IO.FileMode.Create)

Dim MyWriter As New System.IO.StreamWriter(MyStream, System.Text.Encoding.Default)

MyWriter.WriteLine(TextBox1.Text)

MyWriter.Flush()

MyWriter.Close()

MyStream.Close()

End Sub

Private Sub Button2_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button2.Click

'读取一个文本文件

Dim MyReader As New System.IO.StreamReader(Application.StartupPath "\Ssk.CSV", System.Text.Encoding.UTF8)

TextBox2.Text = MyReader.ReadToEnd()

MyReader.Close()

End Sub

注意:在输入文本框里,同一行数据的数据之间用逗号(西文逗号)分隔。

vb.net 操作CSV问题 求大神 急

用一个streamreader和streamwriter即可

Using sr2 As New StreamWriter("2.csv", False, Text.Encoding.Default) '要写入的文件

Using sr1 As New StreamReader("1.csv", Text.Encoding.Default) '要读取的文件

While Not sr1.EndOfStream 'EndOfStream=True表示读取结束了

'读取

Dim lineread As String = "" '等下要读的行

Dim linewrite As String = "" '等下要写入的行

Dim data As String() '每个数据的数组

lineread = sr1.ReadLine '读一行并把流的位置往后调一行

'你现在可以用If判断这一行要不要删除。如果要的话,用Else直接跳过下面的语句即可。

data = lineread.Split(",".ToCharArray, StringSplitOptions.RemoveEmptyEntries) '读取一行,用逗号分隔后存在数组里

'下面对读取到的数据进行处理,你可以自己处理它

For Each item As String In data

linewrite = item  "," 'csv是以逗号分隔的,我们写进去时也要记得加逗号

Next

'写入

If linewrite.EndsWith(",") Then '去掉行最后一个逗号。

'如果之前读到一个空行,这里就不会执行。你想想为什么

sr2.WriteLine(linewrite.Remove(linewrite.Length - 1, 1))

End If

'如果你之前用If判断了行要不要删除,那么End If就应该加在这里。

End While

sr1.Close()

End Using

sr2.Flush()

sr2.Close()

End Using

求助 几个csv文件,结构都一样,修改其中一列的值,然后合并到一个csv文件,求vb.net代码

将解析出来的结果写入到

Excel。

解析csv文件代码:

public static List readCsvFile(String argPath) throws FileNotFoundException, IOException {

CsvFileUtil util = new CsvFileUtil();

File cvsFile = new File(argPath);

List list = new ArrayList();

FileReader fileReader = null;

BufferedReader bufferedReader = null;

try {

fileReader = new FileReader(cvsFile);

bufferedReader = new BufferedReader(fileReader);

String regExp = util.getRegExp();

System.out.println(regExp);

String strLine = "";

String str = "";

while ((strLine = bufferedReader.readLine()) != null) {

Pattern pattern = Pattern.compile(regExp);

Matcher matcher = pattern.matcher(strLine);

List listTemp = new ArrayList();

while(matcher.find()) {

str = matcher.group();

str = str.trim();

if (str.endsWith(",")){

str = str.substring(0, str.length()-1);

str = str.trim();

}

if (str.startsWith("\"") str.endsWith("\"")) {

str = str.substring(1, str.length()-1);

if (util.isExisted("\"\"", str)) {

str = str.replaceAll("\"\"", "\"");

}

}

if (!"".equals(str)) {

//test

System.out.print(str+" : ");

listTemp.add(str);

}

}

System.out.println();

list.add((String[]) listTemp.toArray(new String[listTemp.size()]));

}

} catch (FileNotFoundException e) {

throw e;

} catch (IOException e) {

throw e;

} finally {

try {

if (bufferedReader != null) {

bufferedReader.close();

}

if (fileReader != null) {

fileReader.close();

}

} catch (IOException e) {

throw e;

}

}

return list;

}

写入Excel代码:

public void exportExcel(String title, String[] headers,

CollectionT dataset, OutputStream out, String pattern) {

// 声明一个工作薄

HSSFWorkbook workbook = new HSSFWorkbook();

// 生成一个表格

HSSFSheet sheet = workbook.createSheet(title);

// 设置表格默认列宽度为15个字节

sheet.setDefaultColumnWidth((short) 15);

// 生成一个样式

HSSFCellStyle style = workbook.createCellStyle();

// 设置这些样式

style.setFillForegroundColor(HSSFColor.SKY_BLUE.index);

style.setFillPattern(HSSFCellStyle.SOLID_FOREGROUND);

style.setBorderBottom(HSSFCellStyle.BORDER_THIN);

style.setBorderLeft(HSSFCellStyle.BORDER_THIN);

style.setBorderRight(HSSFCellStyle.BORDER_THIN);

style.setBorderTop(HSSFCellStyle.BORDER_THIN);

style.setAlignment(HSSFCellStyle.ALIGN_CENTER);

// 生成一个字体

HSSFFont font = workbook.createFont();

font.setColor(HSSFColor.VIOLET.index);

font.setFontHeightInPoints((short) 12);

font.setBoldweight(HSSFFont.BOLDWEIGHT_BOLD);

// 把字体应用到当前的样式

style.setFont(font);

// 生成并设置另一个样式

HSSFCellStyle style2 = workbook.createCellStyle();

style2.setFillForegroundColor(HSSFColor.LIGHT_YELLOW.index);

style2.setFillPattern(HSSFCellStyle.SOLID_FOREGROUND);

style2.setBorderBottom(HSSFCellStyle.BORDER_THIN);

style2.setBorderLeft(HSSFCellStyle.BORDER_THIN);

style2.setBorderRight(HSSFCellStyle.BORDER_THIN);

style2.setBorderTop(HSSFCellStyle.BORDER_THIN);

style2.setAlignment(HSSFCellStyle.ALIGN_CENTER);

style2.setVerticalAlignment(HSSFCellStyle.VERTICAL_CENTER);

// 生成另一个字体

HSSFFont font2 = workbook.createFont();

font2.setBoldweight(HSSFFont.BOLDWEIGHT_NORMAL);

// 把字体应用到当前的样式

style2.setFont(font2);

// 声明一个画图的顶级管理器

HSSFPatriarch patriarch = sheet.createDrawingPatriarch();

// 定义注释的大小和位置,详见文档

HSSFComment comment = patriarch.createComment(new HSSFClientAnchor(0, 0, 0, 0, (short) 4, 2, (short) 6, 5));

// 设置注释内容

comment.setString(new HSSFRichTextString("可以在POI中添加注释!"));

// 设置注释作者,当鼠标移动到单元格上是可以在状态栏中看到该内容.

comment.setAuthor("leno");

//产生表格标题行

HSSFRow row = sheet.createRow(0);

for (short i = 0; i headers.length; i++) {

HSSFCell cell = row.createCell(i);

cell.setCellStyle(style);

HSSFRichTextString text = new HSSFRichTextString(headers[i]);

cell.setCellValue(text);

}

//遍历集合数据,产生数据行

HSSFFont font3 = workbook.createFont();

font3.setColor(HSSFColor.BLUE.index);

IteratorT it = dataset.iterator();

int index = 0;

while (it.hasNext()) {

index++;

row = sheet.createRow(index);

T t = (T) it.next();

//利用反射,根据javabean属性的先后顺序,动态调用getXxx()方法得到属性值

Field[] fields = t.getClass().getDeclaredFields();

for (short i = 0; i fields.length; i++) {

HSSFCell cell = row.createCell(i);

cell.setCellStyle(style2);

Field field = fields[i];

String fieldName = field.getName();

String getMethodName = "get"

+ fieldName.substring(0, 1).toUpperCase()

+ fieldName.substring(1);

try {

Class tCls = t.getClass();

Method getMethod = tCls.getMethod(getMethodName,new Class[] {});

Object value = getMethod.invoke(t, new Object[] {});

//判断值的类型后进行强制类型转换

String textValue = null;

//其它数据类型都当作字符串简单处理

textValue = value.toString();

System.out.println(getMethodName+" : "+textValue+" : "+getMethod+" : "+value);

//如果不是图片数据,就利用正则表达式判断textValue是否全部由数字组成

if(textValue!=null){

Pattern p = Pattern.compile("^\\d+(\\.\\d+)?$");

Matcher matcher = p.matcher(textValue);

if(matcher.matches()){

//是数字当作double处理

cell.setCellValue(Double.parseDouble(textValue));

}

else{

HSSFRichTextString richString = new HSSFRichTextString(textValue);

richString.applyFont(font3);

cell.setCellValue(richString);

}

}

} catch (SecurityException e) {

// TODO Auto-generated catch block

e.printStackTrace();

} catch (NoSuchMethodException e) {

// TODO Auto-generated catch block

e.printStackTrace();

} catch (IllegalArgumentException e) {

// TODO Auto-generated catch block

e.printStackTrace();

} catch (IllegalAccessException e) {

e.printStackTrace();

} catch (InvocationTargetException e) {

e.printStackTrace();

} finally {

//清理资源

}

}

}

try {

workbook.write(out);

} catch (IOException e) {

// TODO Auto-generated catch block

e.printStackTrace();

}

}

vb.net读取.cvs文件,如何判断读取到了最后一行?

你csv文件是用什么分割符的?

把csv文件当做文本文件处理

File.ReadAllLines 读取所有行,

然后循环每行,按照分隔符split后就是每一列


网站栏目:VB.net解析csv VBNet
网站链接:http://cdweb.net/article/hhhhss.html