我正在从数据表中写入csv文件。检查我下面的代码
public static void SaveDataTableToCsvFile(string AbsolutePathAndFileName, DataTable TheDataTable, params string[] Options)
{
//variables
string separator;
if (Options.Length > 0)
{
separator = Options[0];
}
else
{
separator = ""; //default
}
string quote = "";
FileInfo info = new FileInfo(AbsolutePathAndFileName);
if (IsFileLocked(info))
{
MessageBox.Show("File is in use, please close the file");
return;
}
//create CSV file
StreamWriter sw = new StreamWriter(AbsolutePathAndFileName);
//write header line
int iColCount = TheDataTable.Columns.Count;
for (int i = 0; i < iColCount; i++)
{
sw.Write(TheDataTable.Columns[i]);
if (i < iColCount - 1)
{
sw.Write(separator);
}
}
sw.Write(sw.NewLine);
//write rows
foreach (DataRow dr in TheDataTable.Rows)
{
for (int i = 0; i < iColCount; i++)
{
if (!Convert.IsDBNull(dr[i]))
{
string data = dr[i].ToString();
data = data.Replace("\"", "\\\"").Replace(",", " ");
sw.Write(quote + data + quote);
}
if (i < iColCount - 1)
{
sw.Write(separator);
}
}
sw.Write(sw.NewLine);
}
sw.Close();
}
代码适用于我,但我需要在csv的一些单元格中添加颜色代码。
我该怎么做呢?
发布于 2012-08-22 12:59:13
CSV是一种没有任何格式化的纯数据格式。它毕竟是一个纯文本文件。所以,没有办法增加色彩。
发布于 2012-08-22 13:15:34
您可能希望使用某些外部实用程序输出.xls (或等效格式),而不是.csv,或者将csv转换为.xls,以便甚至可以进行颜色编码
发布于 2012-08-22 13:03:28
乔伊是绝对正确的。
但是,如果您的情况允许您输出XLSX而不是CSV,那么EPPlus可能是适合您的解决方案。
例如:
using (ExcelPackage ep = new ExcelPackage(AbsolutePathAndFileName))
{
ExcelWorksheet worksheet = ep.Workbook.Worksheets.Add("Worksheet1");
worksheet.Cells["A1"].LoadFromDataTable(TheDataTable, true);
worksheet.Cells["F4"].BackgroundColor.SetColor(Color.Red);
ep.Save();
}
https://stackoverflow.com/questions/12066511
复制相似问题