Trang 1 trên tổng số 2 12 Cuối cùngCuối cùng
Từ 1 tới 10 trên tổng số 13 kết quả

Đề tài: Chương trình chuyển đổi dữ liệu từ Excel sang XML

  1. #1
    Ngày gia nhập
    12 2012
    Bài viết
    6

    Question Chương trình chuyển đổi dữ liệu từ Excel sang XML

    Em có làm chương trình chuyển đổi dữ liệu từ Excel sang XML, và có tham khảo code phần Convert trên mạng, lắp vào thì chương trình đã chạy nhưng em vẫn chưa hiểu phần code chuyển đổi được thực hiện như nào. Mong các anh chị trên diễn đàn chỉ giúp em. Em cảm ơn!

    Mong các anh chị có thể giải thích Step by step giúp em.

    Visual C# Code:
    1.         private void btnConvert_Click(object sender, EventArgs e)
    2.         {
    3.             try
    4.             {
    5.                 //chon vi tri luu file xml
    6.                 string xmlFilename = "";
    7.                 sfd_xml.Filter = "XML|*.xml";
    8.                 if (DialogResult.OK != sfd_xml.ShowDialog()) { return; }
    9.                 xmlFilename = sfd_xml.FileName;
    10.  
    11.                 //tao doi tuong XmlTextWriter
    12.                 XmlTextWriter writer = new XmlTextWriter(xmlFilename, null);
    13.                 writer.Formatting = Formatting.Indented;
    14.                 writer.Indentation = 5;
    15.                 writer.WriteStartDocument();
    16.                 writer.WriteStartElement("", "Book", "");
    17.  
    18.  
    19.                 OleDbConnection xlsConn = new OleDbConnection(xlsConnStr); //
    20.                 xlsConn.Open(); //
    21.  
    22.                 //lay tat ca cac ten sheet
    23.                 DataTable dtSheet = xlsConn.GetOleDbSchemaTable(OleDbSchemaGuid.Tables, null);
    24.  
    25.                 foreach (DataRow drSheet in dtSheet.Rows)
    26.                 {
    27.                     if (drSheet["TABLE_NAME"].ToString().Contains("$"))//checks whether row contains '_xlnm#_FilterDatabase' or sheet name(i.e. sheet name always ends with $ sign)
    28.                     {
    29.                         string sheetname = drSheet["TABLE_NAME"].ToString();
    30.  
    31.                         OleDbDataAdapter da = new OleDbDataAdapter("SELECT * FROM [" + sheetname + "]", xlsConn);
    32.                         DataSet ds = new DataSet();
    33.                         da.Fill(ds);
    34.  
    35.                         DataTable tbl = ds.Tables[0];
    36.  
    37.                         int totalCol = tbl.Columns.Count;
    38.  
    39.                         writer.WriteStartElement("", sheetname.Remove(sheetname.Length - 1), "");
    40.                         foreach (DataRow item in tbl.Rows)
    41.                         {
    42.                             for (int i = 0; i < totalCol; i++)
    43.                             {
    44.                                 writer.WriteStartElement("", tbl.Columns[i].Caption, "");//ten cot
    45.                                 writer.WriteString(item[i].ToString());
    46.                                 writer.WriteEndElement();
    47.                             }
    48.                         }
    49.                         writer.WriteEndElement();
    50.  
    51.                     }
    52.                 }
    53.  
    54.                 writer.WriteEndElement();
    55.                 writer.Flush();
    56.                 writer.Close();
    57.                 MessageBox.Show("Đã chuyển đổi thành công!!!");
    58.             }
    59.             catch (Exception ex) { MessageBox.Show(ex.Message); }
    60.         }
    61.  
    62.        
    63.     }

    P/s: Dữ liệu xml chuyển sang giờ chỉ ở dạng text, vậy em muốn hiển thị dưới dạng bảng trên Gridview thì tiếp theo làm như thế nào ạ?
    Attached Files Attached Files

  2. #2
    Ngày gia nhập
    02 2011
    Nơi ở
    Tp.HCM
    Bài viết
    124

    DataTable hỗ trợ đọc/ghi XML mà
    DataTable.WriteXml
    DataTable.ReadXml

  3. #3
    Ngày gia nhập
    12 2012
    Bài viết
    6

    Trích dẫn Nguyên bản được gửi bởi LieuLuc Xem bài viết
    DataTable hỗ trợ đọc/ghi XML mà
    DataTable.WriteXml
    DataTable.ReadXml
    Bác có thể giải thích cho em ý nghĩa mấy dòng code trên được không?

  4. #4
    Ngày gia nhập
    04 2012
    Bài viết
    116

    có chú thích giải thích đó rồi, rõ ràng thế mà

  5. #5
    Ngày gia nhập
    12 2012
    Bài viết
    6

    Trích dẫn Nguyên bản được gửi bởi grok Xem bài viết
    có chú thích giải thích đó rồi, rõ ràng thế mà
    Hai đoạn này chưa có bác

    Visual C# Code:
    1.                 OleDbConnection xlsConn = new OleDbConnection(xlsConnStr); //
    2.                 xlsConn.Open(); //

    Visual C# Code:
    1.                         string sheetname = drSheet["TABLE_NAME"].ToString();
    2.  
    3.                         OleDbDataAdapter da = new OleDbDataAdapter("SELECT * FROM [" + sheetname + "]", xlsConn);
    4.                         DataSet ds = new DataSet();
    5.                         da.Fill(ds);
    6.  
    7.                         DataTable tbl = ds.Tables[0];
    8.  
    9.                         int totalCol = tbl.Columns.Count;
    10.  
    11.                         writer.WriteStartElement("", sheetname.Remove(sheetname.Length - 1), "");
    12.                         foreach (DataRow item in tbl.Rows)
    13.                         {
    14.                             for (int i = 0; i < totalCol; i++)
    15.                             {
    16.                                 writer.WriteStartElement("", tbl.Columns[i].Caption, "");//ten cot
    17.                                 writer.WriteString(item[i].ToString());
    18.                                 writer.WriteEndElement();
    19.                             }
    20.                         }
    21.                         writer.WriteEndElement();

    Bác cho em xin đoạn code để hiện thị file XML này lên Gridview được không?

  6. #6
    Ngày gia nhập
    04 2012
    Bài viết
    116

    Mặc định Chương trình chuyển đổi dữ liệu từ Excel sang XML

    Code:
    OleDbConnection xlsConn = new OleDbConnection(xlsConnStr); // 
                    xlsConn.Open(); //
    đối tương OleDbConnection dùng để kết nối với cơ sở dữ liệu ở đây là excel, access
    nó cũng giống như Sqlconnection dùng để kết nối với SQL server ấy
    Code:
    OleDbDataAdapter da = new OleDbDataAdapter("SELECT * FROM [" + sheetname + "]", xlsConn);
                            DataSet ds = new DataSet();
    thực thi câu truy vấn đưa kết quả vào dataset (dataset lưu trử trong bộ nhớ đệm ,(tạm thời ) DataAdapter kết nối không bắt buộc liên tục được lưu dữ nó chỉ được gọi khi nào cần thực thi tới nó
    Code:
    DataTable tbl = ds.Tables[0];
    lấy table trong dataset ở đây trong excel mỗi set là mỗi table

    Code:
      writer.WriteStartElement("", sheetname.Remove(sheetname.Length - 1), "");
                            foreach (DataRow item in tbl.Rows)
                            {
                                for (int i = 0; i < totalCol; i++)
                                {
                                    writer.WriteStartElement("", tbl.Columns[i].Caption, "");//ten cot
                                    writer.WriteString(item[i].ToString());
                                    writer.WriteEndElement();
                                }
                            }
                            writer.WriteEndElement();
    duyệt và chuyển thành XML

  7. #7
    Ngày gia nhập
    12 2012
    Bài viết
    6

    Em cảm ơn bác ạ. Bác có thể giúp em cái phần hiển thị file xml đã convert này lên datagridview được không ạ?

  8. #8
    Ngày gia nhập
    04 2012
    Bài viết
    116

    Trích dẫn Nguyên bản được gửi bởi vietnguyen92 Xem bài viết
    Em cảm ơn bác ạ. Bác có thể giúp em cái phần hiển thị file xml đã convert này lên datagridview được không ạ?
    mà sao không cho file excel lên datagridview luôn mà lại
    làm excel->xml->datagridview
    excel->datagridview không nhanh hơn bạn

  9. #9
    Ngày gia nhập
    12 2012
    Bài viết
    6

    Yêu cầu đầu tiên của chương trình này chỉ là convert dữ liệu từ excel sang xml, nhưng sau đó phát sinh thêm là convert sang xml xong thì cho hiển thị lên.

    Cho em có ý về góp ý của bác, theo như bác nói có nghĩa là mình sẽ hiển thị dữ liệu excel lên datagridview luôn sau đó mình mới convert dữ liệu đúng không. Qua mặt kiểu này được không ?

  10. #10
    Ngày gia nhập
    04 2012
    Bài viết
    116

    Trích dẫn Nguyên bản được gửi bởi vietnguyen92 Xem bài viết
    Yêu cầu đầu tiên của chương trình này chỉ là convert dữ liệu từ excel sang xml, nhưng sau đó phát sinh thêm là convert sang xml xong thì cho hiển thị lên.

    Cho em có ý về góp ý của bác, theo như bác nói có nghĩa là mình sẽ hiển thị dữ liệu excel lên datagridview luôn sau đó mình mới convert dữ liệu đúng không. Qua mặt kiểu này được không ?
    tìm hiểu cái này nha.
    http://stackoverflow.com/questions/2633548/xml-string-into-a-datagridview-c

Các đề tài tương tự

  1. PDF TIFF Tools – Excel to PDF Converter - Chuyển đổi Excel sang PDF
    Gửi bởi hoahong89 trong diễn đàn Software (Phần mềm) | Ebooks
    Trả lời: 0
    Bài viết cuối: 13-05-2012, 04:00 AM
  2. xuất dữ liệu từ sql server 2k5 sang excel với kiểu dữ liệu NGÀY
    Gửi bởi sayit trong diễn đàn Thắc mắc lập trình C#
    Trả lời: 3
    Bài viết cuối: 21-01-2011, 10:01 PM
  3. xuất dữ liệu từ datagridview sang file excel đã định dạng
    Gửi bởi demonthanh trong diễn đàn Thắc mắc lập trình C#
    Trả lời: 1
    Bài viết cuối: 03-12-2010, 03:53 PM
  4. Cách Export Dữ liệu từ SQL sang Excel
    Gửi bởi anhtung trong diễn đàn Thắc mắc lập trình Visual C++
    Trả lời: 2
    Bài viết cuối: 13-08-2010, 10:25 AM
  5. Database Thiết kế cơ sở dữ liệu. chuyển dữ liệu từ excel sang sql như thế nào?
    Gửi bởi shinichith25 trong diễn đàn Thắc mắc đại cương Database & Reporting
    Trả lời: 2
    Bài viết cuối: 24-07-2010, 10:39 AM

Tags của đề tài này

Quyền hạn của bạn

  • Bạn không thể gửi đề tài mới
  • Bạn không thể gửi bài trả lời
  • Bạn không thể gửi các đính kèm
  • Bạn không thể chỉnh sửa bài viết của bạn