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 に答える