代碼如下:
學生班級:
公共課學生
{
私有字符串id;
公共字符串Id { get { return id} set { id = value} }
私有字符串名稱;
公共字符串名稱{ get { return name} set { name = value} }
私弦年齡;
公共字符串年齡{ get { return age} set { age = value} }
}
模擬壹個簡單的列表數據源:
個人分發名單& lt學生& gtGetStudentData()
{
列表& lt學生& gtstudentList =新列表& lt學生& gt();
Student s1 =新學生();
s1。id =“1“;
s1。Name =“哈哈”;
s1。age =“10“;
學生s2 =新學生();
s2。id =“2“;
s2。name =“Xixi“;
s2。年齡=“20”;
學生s3 =新學生();
s3。id =“3“;
s3。name =“lolo“;
s3。年齡=“30”;
學生名單。add(s 1);
學生名單。添加(S2);
學生名單。添加(S3);
返回studentList
}
根據文件路徑創建相應的文件:
///& lt;總結& gt
///創建目標文件
///& lt;/summary & gt;
///& lt;param name =“folder“& gt;文件夾& lt/param & gt;
///& lt;param name =“fileName“& gt;文件夾名稱& lt/param & gt;
///& lt;param name =“file extension“& gt;文件擴展名& lt/param & gt;
///& lt;退貨& gt文件路徑& lt/returns & gt;
私有字符串CreateFile(字符串文件夾、字符串文件名、字符串文件擴展名)
{
FileStream fs = null
字符串filePath =文件夾+文件名+“。“+file extension;
嘗試
{
如果(!目錄。存在(文件夾))
{
目錄。創建目錄(文件夾);
}
fs =文件。創建(文件路徑);
}
catch(例外情況)
{ }
最後
{
if(fs!=空)
{
fs。dispose();
}
}
返回文件路徑;
}
獲取該類的屬性集合(以便生成CSV文件的所有列標題):
private property info【】getpropertyinfarray()
{
property info【】props = null;
嘗試
{
type type = type of(EricSunApp。學生);
對象對象=激活器。CreateInstance(類型);
道具=類型。get properties(binding flags。公共| BindingFlags。實例);
}
catch(例外情況)
{ }
返還道具;
}
遍歷列表並將數據導入到CSV文件中(目的是用逗號分隔壹行中的數據):
///& lt;總結& gt
///將列表數據保存到CSV文件
///& lt;/summary & gt;
///& lt;param name =“student list“& gt;數據源& lt/param & gt;
///& lt;param name =“file path“& gt;文件路徑& lt/param & gt;
///& lt;退貨& gt成功標誌& lt/returns & gt;
私有bool savedatatocsfile(List & lt;學生& gt學生列表,字符串文件路徑)
{
bool successFlag = true
StringBuilder strColumn = new StringBuilder();
StringBuilder strValue = new StringBuilder();
StreamWriter sw = null
property info【】props = getpropertyinforyarray();
嘗試
{
sw = new StreamWriter(文件路徑);
for(int I = 0;我& lt道具。長度;i++)
{
strColumn。append(props【I】。姓名);
strColumn。追加(“,“);
}
strColumn。移除(str列。長度- 1,1);
西南。WriteLine(str column);//寫入列名
for(int I = 0;我& lt學生名單。數數;i++)
{
strValue。移除(0,strValue。長度);//清除臨時行值
strValue。追加(student list【I】。id);
strValue。追加(“,“);
strValue。追加(student list【I】。姓名);
strValue。追加(“,“);
strValue。追加(student list【I】。年齡);
西南。WriteLine(strValue);//寫入行值
}
}
catch(例外情況)
{
successFlag = false
}
最後
{
if(SW!=空)
{
西南。dispose();
}
}
返回successFlag
}
特定呼叫的簡單示例:
私有bool EricSunExportData(字符串文件夾、字符串文件名、字符串文件擴展名)
{
列表& lt學生& gtstudent list = GetStudentData();
string filePath = CreateFile(文件夾,文件名,文件擴展名);
bool flag = savedatocsvfile(student list,file path);
返回標誌;
}