4

Datatable から 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 の一部のセルにカラー コードを追加する必要があります。

どうやってやるの ?

4

4 に答える 4

23

CSVは、書式設定のない純粋なデータ形式です。結局のところ、それはプレーンテキストファイルです。いいえ、色を追加する方法はありません。

于 2012-08-22T04:59:12.547 に答える
2

外部ユーティリティを使用して .csv の代わりに .xls (または同等のもの) を出力したい場合や、色分けを可能にするために csv を .xls に変換したい場合があります。

于 2012-08-22T05:15:34.163 に答える
1

ジョーイは絶対に正しい。

ただし、状況によって CSV の代わりに XLSX を出力できる場合は、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();
}
于 2012-08-22T05:03:27.753 に答える
0

CSV (カンマ区切り値) ファイルはテキスト ファイルです。別のファイル形式 (RTF など) に変更せずにファイルに色を追加する方法はありません。

于 2012-08-22T05:01:56.583 に答える