C# 将DataGridview导出到Excel的建议

C# 将DataGridview导出到Excel的建议,c#,C#,我尝试将DataGridview导出到Excel。我的代码是: private void ToCsV(DataGridView dGV, string filename) { string stOutput = ""; // Export titles: string sHeaders = ""; for (int j = 0; j < dGV.Columns.Count; j++) sHeaders = sHeaders.ToString

我尝试将
DataGridview
导出到Excel。我的代码是:

private void ToCsV(DataGridView dGV, string filename)
{
    string stOutput = "";
    // Export titles:
    string sHeaders = "";

    for (int j = 0; j < dGV.Columns.Count; j++)
        sHeaders = sHeaders.ToString() + Convert.ToString(dGV.Columns[j].HeaderText) + "\t";
    stOutput += sHeaders + "\r\n";
    // Export data.
    for (int i = 0; i < dGV.RowCount - 1; i++)
    {
        string stLine = "";
        for (int j = 0; j < dGV.Rows[i].Cells.Count; j++)
            stLine = stLine.ToString() + Convert.ToString(dGV.Rows[i].Cells[j].Value) + "\t";
        stOutput += stLine + "\r\n";
    }
    Encoding utf16 = Encoding.GetEncoding(1254);
    byte[] output = utf16.GetBytes(stOutput);
    FileStream fs = new FileStream(filename, FileMode.Create);
    BinaryWriter bw = new BinaryWriter(fs);
    bw.Write(output, 0, output.Length); //write the encoded file
    bw.Flush();
    bw.Close();
    fs.Close();
}  
我需要使用UTF-8而不是UTF-16。因为我的桌子上有阿拉伯语。那么我应该如何使用

Encoding utf16=Encoding.GetEncoding(1256)

相同的代码。。同样的问题。。 我最后使用了另一种编码。。使用此选项可以解决问题:

byte[] output = Encoding.Default.GetBytes(stOutput);
而不是

Encoding utf16 = Encoding.GetEncoding(1254);
byte[] output = utf16.GetBytes(stOutput);

试试这个,让我知道..

有人能帮我吗?
byte[] output = Encoding.Default.GetBytes(stOutput);
Encoding utf16 = Encoding.GetEncoding(1254);
byte[] output = utf16.GetBytes(stOutput);