Ref: You can read more about the StreamReader Class here.
The StreamReader Class in Asp.Net provides many useful methods and properties to read lines of information from a standard text file.
What is CSV?
CSV stands for Comma Separated Values, a format where text values are separated using commas. For example, below is 3 different values (or texts) separated by commas.
001,Rock Pigeon,Dove
Note: You can open a .csv file using any text editing application such as Notepad.
So, I have a list of birds with unique ids, name and type. It is saved in a .csv file called birds.csv.
001,Eurasian Collared-Dove,Dove
002,Canyon Towhee,Sparrow
003,American Kestrel,Hawk
Using StreamReader class methods, I can easily extract the CSV data and write it on my web page for viewing.
In the markup section, I have <div> element, where I’ll write the CSV data. This is optional. You can use other methods to deal with the data, like saving it to a database, or show the csv values in a table etc.
<style>
.header, .d {
display: inline-table;
width: 30%;
border: solid 1px #CCC;
padding: 3px;
}
.header {
font-weight: bold;
}
</style>
<!--show csv values here-->
<div id="birds" runat="server" style="width:50%;"></div>
using System;
using System.IO;
public partial class SiteMaster : System.Web.UI.MasterPage
{
protected void Page_Load(object sender, EventArgs e)
{
// Be carefule with backward and forward slash in file path.
readCSV_Data("d:/birds.csv");
}
private void readCSV_Data(string sfileName)
{
// CREATE AN INSTANCE OF StreamReader TO READ THE FILE.
using (StreamReader sr = new StreamReader(sfileName))
{
// First, create the header.
birds.InnerHtml = "<div class='header'>Code</div><div class='header'>Bird Name</div><div class='header'>Bird Type</div>";
do
{
string s = sr.ReadLine(); // Read line of characters from the stream.
string[] arrData = s.Split(','); // Store values in the array for later use.
// Read each value in the array.
for (int i = 0; i <= arrData.GetUpperBound(0); i++)
{
birds.InnerHtml = birds.InnerHtml + "<div class='d'>" + arrData[i] + "</div>";
}
birds.InnerHtml = birds.InnerHtml + "<br />"; // Go to the next line.
} while (!(sr.EndOfStream));
}
}
}I am creating an Instance of StreamReader to read the data from the file. Using the ReadLine() method, I am storing each character in a string.
Option Explicit On
Imports System.IO
Partial Class Site
Inherits System.Web.UI.MasterPage
Protected Sub Page_Load(sender As Object, e As System.EventArgs) Handles Me.Load
readCSV_Data("d:/birds.csv")
End Sub
Private Sub readCSV_Data(ByVal sfileName As String)
' CREATE AN INSTANCE OF StreamReader TO READ THE FILE.
Using sr As New StreamReader(sfileName)
' THE HEADER.
birds.InnerHtml = "<div class='header'>Code</div><div class='header'>Bird Name</div><div class='header'>Bird Type</div>"
Do
Dim arrData() As String = sr.ReadLine.Split(",") ' SPLIT AND STORE VALUES IN THE ARRAY.
' READ VALUES FROM THE ARRAY.
For i = 0 To UBound(arrData)
birds.InnerHtml = birds.InnerHtml & "<div class='d'>" & arrData(i) & "</div>"
Next
birds.InnerHtml = birds.InnerHtml & "<br />" ' GO TO THE NEXT LINE.
Loop Until sr.EndOfStream
End Using
End Sub
End ClassThis is how it will look.

