0

我有一个 winform 应用程序,我想使用流编写器和 savefiledialog 将我的数据表导出为 office 2007(.xlsx) 格式。但是当我打开 excel 文件时,我遇到了这个错误:文件格式或文件扩展名无效。

Fx_3saveFileDialog.Filter = "Excel 2007-2010 文件 (.xlsx)|*.xlsx; Fx_3saveFileDialog.DefaultExt = "xlsx";

        if (Fx_3saveFileDialog.ShowDialog() == DialogResult.OK)
        {
            dsUrunTableAdapters.PF_FormDegerTableAdapter adapter = new dsUrunTableAdapters.PF_FormDegerTableAdapter();
            dsUrun.PF_FormDegerDataTable degertable = new dsUrun.PF_FormDegerDataTable();
            adapter.Fill(degertable);

            StreamWriter writer = new StreamWriter(Fx_3saveFileDialog.FileName,true);
            //StringWriter sw = new StringWriter();
            //StringBuilder sb = new StringBuilder(dialog.FileName);

            writer.Write("<html>");
            writer.Write("<head>");
            writer.Write("</head>");
            writer.Write("<body>");

            writer.Write("<table>");

            foreach( DataColumn c in degertable.Columns )
            {
                //writer.Write(c.Caption);
                writer.Write("<td>");
                writer.Write(c.Caption);
                writer.Write("</td>");

            }

            writer.Write("</table>");
            writer.Write("</body>");
            writer.Write("</html>");

            //writer.WriteLine();

            foreach (DataRow r in degertable.Rows)
            {
                //writer.Write(r[degertable.SecilebilecekDegerlerColumn].ToString());
            }

            writer.Close();
4

1 回答 1

0

Excel 文件是包含开放格式的压缩文件。您正在编写一个 HTML 页面并给它一个 xlsx 扩展名,这是行不通的。

您必须使用 COM 并操作 Excel 来添加单元格,或者最简单的方法是将表格输出为 Excel 可以轻松读取的 CSV 文本文件(逗号分隔文件)。

于 2012-04-30T14:14:40.050 回答