如何在Windows应用程序C#中导出到Excel?

时间:2017-03-22 04:05:49

标签: c# winforms datagridview export-to-excel

我是Windows应用程序开发的新手,试图编写用于将数据集导出到excel的代码。我已经在互联网上阅读了几个关于此的例子,但都将文件导出到某个位置。我想像在web中一样导出文件(作为一个打开要求保存为文件) 下面是我的Web应用程序代码,我们需要在窗口上运行它需要做哪些更改?

const _ = require('lodash')

let newState = _.cloneDeep(state)

for(let key in action) {
    newState.visitedData[key] = action[key]
}

3 个答案:

答案 0 :(得分:0)

此示例将告诉您How to export Dataset to Excel,如果您在此link上看到第二个答案,您将了解如何允许用户将文档保存在其电脑中的任何位置。您可以打开Excel文件by following this link

在提出问题之前一定要搜索,因为无论你问什么,这里都可以找到所有内容。

希望它有所帮助!

答案 1 :(得分:0)

在搜索Windows桌面应用程序相关答案时,使用关键字" Winforms"," C#"。

您需要使用SaveFileDialog类选择文件,并使用FileStream向其中写入内容。

您可以找到详细的样本msdnherehere

答案 2 :(得分:0)

感谢您提供了这么多提示,以下是转换为窗口应用后的最终代码 希望它会帮助别人

   private void btn_export_Click(object sender, EventArgs e)
    {
        try
        {
            SaveFileDialog savefile = new SaveFileDialog();
            savefile.FileName = "Response.xls";
            savefile.Filter = "Excel Files|*.xls;*.xlsx;*.xlsm";
            if (dset.Tables[0].Rows.Count > 0)
            {
                if (savefile.ShowDialog() == DialogResult.OK)
                {
                    //using (StreamWriter sw = new StreamWriter(savefile.FileName))
                    //    sw.WriteLine("Hello World!");
                    StreamWriter wr = new StreamWriter(savefile.FileName);
                    for (int i = 0; i < dset.Tables[0].Columns.Count; i++)
                    {
                        wr.Write(dset.Tables[0].Columns[i].ToString().ToUpper() + "\t");
                    }

                    wr.WriteLine();

                    //write rows to excel file
                    for (int i = 0; i < (dset.Tables[0].Rows.Count); i++)
                    {
                        for (int j = 0; j < dset.Tables[0].Columns.Count; j++)
                        {
                            if (dset.Tables[0].Rows[i][j] != null)
                            {
                                wr.Write(Convert.ToString(dset.Tables[0].Rows[i][j]) + "\t");
                            }
                            else
                            {
                                wr.Write("\t");
                            }
                        }
                        //go to next line
                        wr.WriteLine();
                    }
                    //close file
                    wr.Close();
                    MetroMessageBox.Show(this, "Data saved in Excel format at location "+ savefile.FileName , "Successfully Saved", MessageBoxButtons.OK, MessageBoxIcon.Question);
                }
            }
            else
            {
                MetroMessageBox.Show(this,"Zero record to export , perform a operation first","Can't export file",MessageBoxButtons.OK,MessageBoxIcon.Information);
            }
        }
        catch (Exception ex)
        {
            MetroMessageBox.Show(this, v1.PrintExceptionDetails(ex), "Error", MessageBoxButtons.OK, MessageBoxIcon.Error);
            el.LogError(ex);
        }
        finally
        {

        }
    }