নিম্নলিখিত সংক্ষিপ্ত সংস্করণটি এক্সেলে সূক্ষ্মভাবে খোলে, সম্ভবত আপনার সমস্যাটি পিছনের কমা ছিল
.নেট = 3.5
StringBuilder sb = new StringBuilder();
string[] columnNames = dt.Columns.Cast<DataColumn>().
Select(column => column.ColumnName).
ToArray();
sb.AppendLine(string.Join(",", columnNames));
foreach (DataRow row in dt.Rows)
{
string[] fields = row.ItemArray.Select(field => field.ToString()).
ToArray();
sb.AppendLine(string.Join(",", fields));
}
File.WriteAllText("test.csv", sb.ToString());
। নেট> = 4.0
এবং টিম যেমন উল্লেখ করেছে, আপনি। নেট> = 4 এ থাকলে আপনি এটিকে আরও খাটো করতে পারেন:
StringBuilder sb = new StringBuilder();
IEnumerable<string> columnNames = dt.Columns.Cast<DataColumn>().
Select(column => column.ColumnName);
sb.AppendLine(string.Join(",", columnNames));
foreach (DataRow row in dt.Rows)
{
IEnumerable<string> fields = row.ItemArray.Select(field => field.ToString());
sb.AppendLine(string.Join(",", fields));
}
File.WriteAllText("test.csv", sb.ToString());
খ্রিস্টানের পরামর্শ অনুসারে, আপনি যদি ক্ষেত্রগুলিতে পালিত বিশেষ অক্ষরগুলি পরিচালনা করতে চান তবে লুপ ব্লকটি এর দ্বারা প্রতিস্থাপন করুন:
foreach (DataRow row in dt.Rows)
{
IEnumerable<string> fields = row.ItemArray.Select(field =>
string.Concat("\"", field.ToString().Replace("\"", "\"\""), "\""));
sb.AppendLine(string.Join(",", fields));
}
এবং সর্বশেষ পরামর্শ, আপনি মেমরিতে একটি বড় ডকুমেন্ট না এড়াতে আপনি পুরো ডকুমেন্টের পরিবর্তে লাইন সিএসভি কনটেন্ট লাইন লিখতে পারেন।