Excel 使用 CSV C# 自动适应

Excel Auto fit using CSV C#

这是代码,我只是想知道如何自动适应我尝试 Excel.Rows.AutoFit 但告诉我错误,这 Excel.Columns.AutoFit

private void exportToExcelToolStripMenuItem_Click(object sender, EventArgs e)
    {
        SaveFileDialog sfd = new SaveFileDialog();
        sfd.Filter = "Excel Documents (*.xls)|*.xls";
        sfd.FileName = "export.xls";
        if (sfd.ShowDialog() == DialogResult.OK)
        {
            //ToCsV(dataGridView1, @"c:\export.xls");
            ToCsV(dataGridView1, sfd.FileName); 
        }  
    }
    private void ToCsV(DataGridView dGV, string filename)
    {

        string stOutput = "";
        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";


        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); 
        bw.Flush();
        bw.Close();
        fs.Close();
    }

请帮助我自动调整列,谢谢!

据我所知,您并没有真正以 XLS 格式保存数据,但生成的文件将具有 xls 扩展名。难怪当您打开文件时 Excel 是否会显示警告,因为它检测到格式有问题。 因为文件无非是文本,所以不存储数据格式、列宽、字体样式等信息

如果您确实需要格式化,您可以使用您提到的 Microsoft.Office.Interop.Excel` 或 EPPlus 等其他库来创建真正的 xls(x) 文件。

扩展名为 XLS 的 CSV 文件不是真正的 Excel 文件。它只是一个 CSV,MS Excel 知道打开 CSV 并将其数据显示在 sheet 中。 XLS 文件是二进制文件,而不是像 CSV 这样的文本文件。

要创建真正的 XLS 文件,您可以使用来自所有 Excel 库的 Excel 库,例如 EasyXLS for example and, to be more specific, this C# Excel library

要将 DataGridView 导出到 Excel,请选中此 code sample。行和列将自动适应内容。