Từ 1 tới 5 trên tổng số 5 kết quả

Đề tài: Lưu dữ liệu tiếp tục ra file excell trong winform như thế nào ?

  1. #1
    Ngày gia nhập
    10 2008
    Bài viết
    22

    Mặc định Lưu dữ liệu tiếp tục ra file excell trong winform như thế nào ?

    Em muốn lưu dữ liệu (listview, datagrid..) trong winfrom ra excell.
    Em tìm thấy sử dụng thư viện excell của MS:
    Code:
    Microsoft.Office.Interop.Excel.Application app = new Microsoft.Office.Interop.Excel.Application();
                            app.Visible = true;
                            Microsoft.Office.Interop.Excel.Workbook wb = app.Workbooks.Add(1);
                            Microsoft.Office.Interop.Excel.Worksheet ws = (Microsoft.Office.Interop.Excel.Worksheet)wb.Worksheets[1];
                            int i = 1;
                            int i2 = 1;
                            foreach (ListViewItem lvi in listViewResult.Items)
                            {
                                i = 1;
                                foreach (ListViewItem.ListViewSubItem lvs in lvi.SubItems)
                                {
                                    ws.Cells[i2, i] = lvs.Text;
                                    i++;
                                }
                                i2++;
                            }
                            wb.SaveAs(SaveFileDialog.FileName);
    Nhưng phải add reference COm của Excell và office vào. Máy em cài office 2010 thì chỉ add microsoft excel 14.0 object library nên khi chạy trên máy khác không cài office 2010 thì báo lỗi ngay?
    Em muốn tìm thư viện khác để save excell nhưng tìm mãi ko thấy thư viện nào save trên winform?
    Hơn nữa em muốn mở excell để có thể ghi tiếp vào chứ ko phải ghi mới thì thực hiện thế nào nhỉ
    Mong mọi người giúp đỡ.
    Thank all!

  2. #2
    Ngày gia nhập
    10 2008
    Bài viết
    22

    Em thực hiện việc lưu thêm dữ liệu file như sau: kiểm tra sự tồn tại của file nếu tồn tại thì ghi thêm vào nhưng vấn đề em không check được mình ghi tiếp vào dòng bao nhiêu.
    Theo code trên khi mình ghi vào mình cần xác định được sẽ ghi dòng bao nhiêu :biến int i2;
    Code:
     Microsoft.Office.Interop.Excel.Application app = new Microsoft.Office.Interop.Excel.Application();
                                app.Visible = false;
                                Microsoft.Office.Interop.Excel.Workbook wb = app.Workbooks.Open(SaveFileDialog.FileName);
                                Microsoft.Office.Interop.Excel.Worksheet ws = (Microsoft.Office.Interop.Excel.Worksheet)wb.Worksheets[1];
                                int i = 1;
                              //   i2 = Count_Cell();
                                foreach (ListViewItem lvi in listViewResult.Items)
                                {
                                    i = 1;
                                    foreach (ListViewItem.ListViewSubItem lvs in lvi.SubItems)
                                    {
                                        ws.Cells[i2, i] = lvs.Text;
                                        i++;
                                    }
                                    i2++;
                                }
                                wb.Save();
    Anh nào có thể chỉ em cách đếm số dòng đã ghi trong excell ?

  3. #3
    Ngày gia nhập
    02 2011
    Bài viết
    36

    Trích dẫn Nguyên bản được gửi bởi stalinz Xem bài viết
    Em muốn lưu dữ liệu (listview, datagrid..) trong winfrom ra excell.
    Em tìm thấy sử dụng thư viện excell của MS:
    Code:
    Microsoft.Office.Interop.Excel.Application app = new Microsoft.Office.Interop.Excel.Application();
                            app.Visible = true;
                            Microsoft.Office.Interop.Excel.Workbook wb = app.Workbooks.Add(1);
                            Microsoft.Office.Interop.Excel.Worksheet ws = (Microsoft.Office.Interop.Excel.Worksheet)wb.Worksheets[1];
                            int i = 1;
                            int i2 = 1;
                            foreach (ListViewItem lvi in listViewResult.Items)
                            {
                                i = 1;
                                foreach (ListViewItem.ListViewSubItem lvs in lvi.SubItems)
                                {
                                    ws.Cells[i2, i] = lvs.Text;
                                    i++;
                                }
                                i2++;
                            }
                            wb.SaveAs(SaveFileDialog.FileName);
    Nhưng phải add reference COm của Excell và office vào. Máy em cài office 2010 thì chỉ add microsoft excel 14.0 object library nên khi chạy trên máy khác không cài office 2010 thì báo lỗi ngay?
    Em muốn tìm thư viện khác để save excell nhưng tìm mãi ko thấy thư viện nào save trên winform?
    Hơn nữa em muốn mở excell để có thể ghi tiếp vào chứ ko phải ghi mới thì thực hiện thế nào nhỉ
    Mong mọi người giúp đỡ.
    Thank all!
    Vấn đề này trong diễn đàn đã có nhiều bạn chịu khó search nhé.
    http://diendan.congdongcviet.com/showthread.php?t=13061

  4. #4
    Ngày gia nhập
    10 2008
    Bài viết
    22

    Cảm ơn bạn, mình cũng thực ghi được theo ý mình rồi nhưng còn vấn đề muôn hỏi : Khi mình muốn ghi thêm vào dưới dữ liệu đã ghi trước đó rồi thì làm sao có thể đếm được là mình đang ở dòng bao nhiêu để ghi tiếp.

  5. #5
    Ngày gia nhập
    10 2008
    Bài viết
    22

    Deal all!
    Em sử dụng code sau để lấy ra số dòng trong file excell để có thể ghi tiếp mà không bị ghi đè:
    Code:
    private int GetNumRows(ref Microsoft.Office.Interop.Excel.Worksheet worksheet)
            {
                int iLastRow = worksheet.Rows.CurrentRegion.Count;
                return iLastRow;
            }
    Nhưng nó trả về không đúng với dữ liệu có. Nên dữ liệu vẫn bị ghi đè khi số dòng nó trả về nhỏ hơn số dòng đang có?
    Mọi người xem giúp em làm sao để lấy chính xác được số dòng mình đã ghi .
    Thank all!

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

  1. ADO.NET làm sao xuất Crystyal report ra excell và file excell này tự chạy ???
    Gửi bởi lonelyeveningstar trong diễn đàn Thắc mắc lập trình C#
    Trả lời: 1
    Bài viết cuối: 10-02-2012, 12:16 AM
  2. ADO.NET Kiểm tra dữ liệu trùng khi load file excell vào datagridview như thế nào ?
    Gửi bởi lonelyeveningstar trong diễn đàn Thắc mắc lập trình C#
    Trả lời: 9
    Bài viết cuối: 06-01-2012, 07:41 PM
  3. Định dạng khi Export Excell trong C# như thế nào???
    Gửi bởi hoangtk6 trong diễn đàn Thắc mắc lập trình C#
    Trả lời: 1
    Bài viết cuối: 05-01-2012, 06:44 PM
  4. Database Thao tác trên file excell:thêm, xóa ,sửa
    Gửi bởi hoanggia trong diễn đàn Thắc mắc lập trình C#
    Trả lời: 2
    Bài viết cuối: 03-07-2011, 11:35 PM
  5. export dữ liệu từ datagridview ra file excell trong C# 2005
    Gửi bởi hc1987 trong diễn đàn Thắc mắc lập trình C#
    Trả lời: 10
    Bài viết cuối: 21-05-2011, 09:58 PM

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