关于MySQL:如何在C #Windows应用程序中将数据表导出到Excel

How to export datatable to excel in c# windows application

本问题已经有最佳答案,请猛点这里访问。

我通过谷歌搜索找到了一些代码,可以将数据表导出到Excel文件中。我成功地从数据库表中导出文件并将其保存在我的文档中我的编码是:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
  using System;
  using System.Data.OleDb;
  using System.Windows.Forms;
  using MySql.Data.MySqlClient;
  using System.Data;

namespace ImportFile

{
public partial class Form1 : Form
{
    public Form1()
    {
        InitializeComponent();
    }
    String connection ="SERVER=******;"DATABASE=dbd;"UID=root;"PASSWORD=pws;"Convert Zero Datetime = True";
 private void BExport_Click(object sender, EventArgs e)
    {
        DateTime dat = DateTime.Now;
        int time = dat.Hour;
        int time1 = dat.Minute;
        int time2 = dat.Second;
        int month = dat.Month;
        int day = dat.Day;
        MySqlConnection connection1 = new MySqlConnection(connection);
        connection1.Open();
        MySqlCommand command = new MySqlCommand ("SELECT * FROM TABLE_Name",connection1);    
        MySqlDataAdapter dataadpter = new MySqlDataAdapter(command);
        DataTable datatable = new DataTable("TABLE_NAME");
        dataadpter.Fill(datatable);
        datatable.WriteXml("C:\\Users\\Downloads\\agent.xlsx" + time +" -" + time1 +" -" + time2 +" -" + day +" -" + month +"");
        MessageBox.Show("export data");

      }
     }
   }

我的问题是,当我下载文件(单击导入按钮)时,它不下载Excel文件,它只是一个普通文件。

如何将其作为Excel文件下载。如果有人知道这一点……帮助我


这是一个问题:

1
datatable.WriteXml("C:\\Users\\Downloads\\agent.xlsx" + time +" -" + time1 +" -" + time2 +" -" + day +" -" + month +"");

你写了agent.xlsx,但最后添加了一些其他值。

第二个问题就像LewisHai在他的回答中描述的那样,是您正在使用WriteXml方法,该方法将把您的数据写为XML。


正如上面罗曼所说,第一个问题和第一个参数的datatable.WriteXml()不是字符串。更多信息,请访问https://msdn.microsoft.com/en-us/library/system.data.datatable.writexml(v=vs.110).aspx

第二个问题,如代码datatable.WriteXml,它意味着将数据表的数据编写为XML。

请参阅本文以帮助您了解如何将数据表导出到Excel