如何导出数据表格在Excel中的C#窗口应用程序

我发现了一些通过Googlesearch的代码,允许我将数据表导出为ex​​cel文件。 我成功地从数据库表中导出文件并将其保存在我的文档中我的编码是:

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"); } } } 

我的问题是,当我下载文件(单击导入button),它不是下载一个Excel文件,只是一个正常的文件

我怎么下载它作为excel文件 。 如果有人知道这一点…. 帮助我

这条线是一个问题:

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

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

第二个问题就像刘海在他的回答中已经描述的那样 ,是你正在使用WriteXml方法,它将把你的数据写成XML。

第一个问题,如上面罗马所说, datatable.WriteXml()与第一个参数不是string。 阅读更多信息, 请访问https://msdn.microsoft.com/zh-CN/library/system.data.datatable.writexml(v=vs.110).aspx

第二个问题,因为这个代码datatable.WriteXml这意味着你写数据表的数据为XML。

请参阅这篇文章以帮助您更多如何将DataTable导出到Excel