[英]create csv file from multiple datatables in c#
i want to export data from multiple datatables to csv file. 我想将数据从多个数据表导出到csv文件。
i already know how to write one datatable to csv. 我已经知道如何将一个数据表写入csv。
any help please. 请任何帮助。 i have this function 我有这个功能
public void CreateCSVFile(DataTable dt, string strFilePath)
{
try
{
StreamWriter sw = new StreamWriter(strFilePath, false);
int columnCount = dt.Columns.Count;
for (int i = 0; i < columnCount ; i++)
{
sw.Write(dt.Columns[i]);
if (i < columnCount - 1)
{
sw.Write(",");
}
}
sw.Write(sw.NewLine);
foreach (DataRow dr in dt.Rows)
{
for (int i = 0; i < columnCount ; i++)
{
if (!Convert.IsDBNull(dr[i]))
{
sw.Write(dr[i].ToString());
}
if (i < columnCount - 1)
{
sw.Write(",");
}
}
sw.Write(sw.NewLine);
}
sw.Close();
}
catch (Exception ex)
{
throw ex;
}
}
only pass the data table to the function and name of report it will output a report file. 仅将数据表传递给报告的函数和名称,它将输出报告文件。
public void MyGetCSV(DataTable dtRecords,string strReportName)
{
string delimiter = ",";
StringBuilder csvGen = new StringBuilder();
dtCutOffDate = GetLastMonthEndDate();
dtFromDate= GetFromDate();
int index = 0;
strReportName = string.Format(strReportName, GetTimeFormat(true,dtCutOffDate), GetTimeFormat(false,DateTime.Now));
string strFilePath = string.Format("{0}{1}", GetReportGenerationPath(), strReportName);
if (!File.Exists(strFilePath))
{
File.Create(strFilePath).Close();
}
foreach (DataColumn column in dtRecords.Columns)
{
csvGen.Append(column.ColumnName.ToUpper().Trim()).Append(delimiter);
}
index = csvGen.ToString().LastIndexOf(',');
if (index > 0)
{
csvGen = csvGen.Remove(index,1);
}
csvGen.Append("\r\n");
foreach (DataRow row in dtRecords.Rows)
{
foreach (DataColumn column in dtRecords.Columns)
{
csvGen.Append(row[column.ColumnName].ToString()).Append(delimiter);
}
csvGen.AppendLine();
index = csvGen.ToString().LastIndexOf(',');
if (index > 0)
{
csvGen = csvGen.Remove(index, 1);
}
}
File.WriteAllText(strFilePath, csvGen.ToString());
}
You can just append to the same file. 您可以仅附加到同一文件。
StreamWriter constructor allowing you to append StreamWriter构造函数允许您追加
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.