如何在c#windows应用程序中将数据表导出到excel [重复]

Posted

技术标签:

【中文标题】如何在c#windows应用程序中将数据表导出到excel [重复]【英文标题】:How to export datatable to excel in c# windows application [duplicate] 【发布时间】:2016-03-24 21:03:31 【问题描述】:

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

  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 文件 。如果有人知道这个.... 帮助我

【问题讨论】:

您是否调试过您的代码并查看究竟发生了什么?我的意思是,您确定您的选择语句返回数据?顺便说一句,您知道您尝试编写类似\\agent.xlsx12-4-3... 的xlsx 文件,对吗?您是否尝试将这些数字放在您的文件名中? 将此类数据(表格中的基本行/列数据)导入 Excel 的最简单方法是创建一个简单的csv 文件。除非您有图表或格式要求,否则这是最简单的方法,也适用于所有其他类型的 ob 应用程序。 【参考方案1】:

这一行是一个问题:

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

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

第二个问题就像 Lewis Hai 已经描述过的in his answer,是您正在使用WriteXml 方法,它将您的数据写入XML。

【讨论】:

主要问题是DataTable.WriteXml,而不是文件名。 @Albireo 哦,好吧。感谢您的提示。我没注意到他在写 Xml……文件名有点忙……谢谢【参考方案2】:

罗马上面说的第一个问题和第一个参数的datatable.WriteXml() 不是字符串。阅读更多https://msdn.microsoft.com/en-us/library/system.data.datatable.writexml(v=vs.110).aspx

第二个问题,这段代码datatable.WriteXml表示你将datatable的数据写成XML。

请参考这篇文章以帮助您更多How to export DataTable to Excel

【讨论】:

以上是关于如何在c#windows应用程序中将数据表导出到excel [重复]的主要内容,如果未能解决你的问题,请参考以下文章

在c#中将数据导出到Excel时出错(获胜表单)

如何在SSRS中将报告导出到.CSV?

如何在 C 中将 IOCTL 发送到 Windows 上的所有驱动程序

如何在 SQL 开发人员中将多个表中的数据导出到多个 .TXT 文件中

c#中将datagridview中数据导出到excel中,点击保存可以保存,点击取消就出

如何在matlab中将句柄对象层次结构保存到磁盘