Cómo escribir variables en formato de lista en un archivo csv
El código es el siguiente:
Clase de estudiante:
Estudiante de clase pública
{
Cadena privada id;
Id. de cadena pública { get { return id} set { id = value} }
Nombre de cadena privada;
Nombre de cadena pública { get { return nombre} conjunto { nombre = valor} }
Edad de cadena privada;
Edad de cadena pública { get { edad de retorno} conjunto { edad = valor} }
}
Simule una fuente de datos de lista simple:
Lista de distribución personal<Students>GetStudentData()
{
Lista <Students& gtstudentList = nueva Lista<Students& gt( );
Estudiante s1 = nuevos Estudiantes();
s1. id="1";
s1. Nombre = "Jaja";
s1. edad = "10";
Estudiante s2 = nuevo estudiante();
s2. id="2";
s2. nombre="Xixi";
s2. edad = "20";
Estudiante s3 = nuevo Estudiante();
s3. id="3";
s3. nombre="lolo";
s3. Edad="30";
Lista de estudiantes. add(s 1);
Lista de estudiantes. Agregar(S2);
Lista de estudiantes. Add(S3);
Devolver lista de estudiantes
}
Crea el archivo correspondiente según la ruta del archivo:
///& lt; resumen>
///Crear archivo de destino
///</summary >
///<param name = "carpeta" >carpeta</param>
///<param name="fileName">nombre de carpeta</param>
///<param name="extensión de archivo" >extensión de archivo</param>
////<return>ruta del archivo< /returns & gt;
Cadena privada CreateFile(carpeta de cadena, nombre de archivo de cadena, extensión de archivo de cadena)
{
FileStream fs = null
String filePath =carpeta+nombre de archivo+"."+extensión de archivo;
Probar
{
Si (! Directorio. Existe (carpeta))
{
Directorio. Crear directorio (carpeta);
}
fs = archivo. crear(ruta de archivo);
}
catch(excepción)
{ }
último
{
if (fs!=null)
{
fs.
dispose();
}
}
Devuelve la ruta del archivo;
}
Obtiene el archivo ruta de la colección de propiedades de clase (para generar todos los encabezados de columna para el archivo CSV):
información de propiedad privada【】getpropertyinfarray()
{
información de propiedad【】props = null ;
Probar
{
tipo tipo = tipo de (EricSunApp.Student);
Objeto objeto = Activador. CreateInstance(tipo);
Props = tipo. obtener propiedades (banderas vinculantes. public | BindingFlags. instancia
}
catch (excepciones)
{ }
devolver accesorios); ;
}
Recorre la lista e importa los datos a un archivo CSV (el propósito es separar los datos en una fila con comas):
///& lt;Resumen>
///Guardar datos de la lista en un archivo CSV
///& lt;/summary >
// / <param name="lista de estudiantes">Fuente de datos</param>
///<param name="ruta del archivo">Ruta del archivo</ param>
///<Returns>Success Flag</returns>
Private bool saveDatatocsFile(List<Students>Student List, String file path)
{
bool SuccessFlag = true
StringBuilder strColumn = new StringBuilder();
StringBuilder strValue = new StringBuilder();
StreamWriter sw = null
información de propiedad【 】props = getpropertyinforyarray();
Prueba
{ p>
sw = new StreamWriter(ruta del archivo);
for(int I = 0; i< accesorios. longitud; i++)
{
strColumn. append(props[I].Nombre);
strColumn. Append(",");
}
strColumn. remove(strcolumn. length - 1, 1);
SW. WriteLine(str column); //Escribe el nombre de la columna
for(int I = 0; i & ltstudent list. Count; i++)
{
strValue . remove(0, strValue. length); //Borrar valores de fila temporales
strValue. append(lista de estudiantes[I].id);
strValue. Agregar(",");
strValue. Append(lista de estudiantes[I]. Nombre);
strValue. Agregar(",");
strValue. append(lista de estudiantes[I].edad);
Suroeste.
WriteLine(strValue); //Escribe el valor de la línea
}
}
catch (excepción)
{
successFlag = false
}
Finalmente
{
if (SW!=null)
{
Suroeste. dispose();
}
}
Devolver SuccessFlag
}
Ejemplo simple de una llamada específica :
Bool privado EricSunExportData(carpeta de cadena, nombre de archivo de cadena, extensión de archivo de cadena)
{
Lista<student>student list= GetStudentData();
string filePath = CreateFile(carpeta, nombre de archivo, extensión de archivo);
bool flag = saveatocsvfile(lista de estudiantes, ruta de archivo);
Devolver indicador;
}