2015-12-18 2 views
2

Я нашел код через googling, который позволяет мне экспортировать таблицу данных в файл excel. я успешно экспортировать файл из таблицы базы данных и сохранить его в моем документе Мое кодирование:Как экспортировать datatable в excel в приложение C# windows

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 файл. если кто-нибудь знать это .... помочь мне

+0

Вы отлаживать свой код и посмотреть, что происходит именно? Я имею в виду, вы уверены, что ваш оператор select возвращает данные? Кстати, вы знаете, что вы пытаетесь написать файл xlsx, что-то вроде '\\ agent.xlsx12-4-3 ...' правильно? Вы пытаетесь поместить эти числа в свое имя файла? –

+2

Самый простой способ получить такие данные (базовые данные строки/столбца из таблицы) в Excel - это создать простой файл 'csv'. Если у вас нет диаграмм или требований к форматированию, это самый простой способ, а также хорошо работает со всеми другими приложениями ob. –

ответ

3

Эта линия одна проблема:

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

Вы писали agent.xlsx, но затем добавили некоторые другие значения в конце.

Вторая проблема в том, что Lewis Hai уже описал in his answer, заключается в том, что вы используете метод WriteXml, который будет записывать ваши данные в формате XML.

+0

Основной проблемой является 'DataTable.WriteXml', а не имя файла. – Albireo

+0

@Albireo О, ну. Спасибо за подсказку. Я не заметил, что он пишет Xml ... Был слишком занят с именем файла ... Thx – Roman

0

Первая проблема, о которой говорилось выше, и datatable.WriteXml() с первым параметром не является строкой. Подробнее на https://msdn.microsoft.com/en-us/library/system.data.datatable.writexml(v=vs.110).aspx

Вторая проблема, так как этот код datatable.WriteXml означает, что вы записываете данные, относящиеся к данным, как XML.

Обратитесь этот пост, чтобы помочь вам больше How to export DataTable to Excel

Смежные вопросы