Chào mừng đến với Diễn đàn lập trình - Cộng đồng lập trình.
Trang 1 của 2 12 CuốiCuối
Kết quả 1 đến 10 của 16
  1. #1
    Ngày tham gia
    Sep 2015
    Bài viết
    0

    Kết xuất dữ liệu từ window form sang excel với thư viện NPOI

    Tình cờ tìm được thư viện kết xuất ra excel từ window form trên internet, nay share cho các anh chị em tham khảo. Dll này kết xuất ra excel nhanh hơn so với sử dụng Microsoft.Office.Interop.Excel.dll. các bạn tham khảo source code và cho ý kiến nhé:
    Tool này có tất cả các thao tác với tệp excel khi kết xuất ra như: kẻ khung, tô nền, merge cell, chỉnh độ rộng dòng-cột, định dạng font chữ, chèn hình......
    Trong ví dụ, mình dùng vòng lặp để kết xuất excel 100 cột, 10000 dòng, thời gian kết xuất trên máy mình (core 2 duo, 2G Ram) khoảng 15 giây!
    Đặc biệt, nếu máy không cài đặt Office, thư viện vẫn có thể kết xuất ra excel!

    Đây là link download ví dụ và dll của thư viện này, thư viện này hoàn toàn miễn phí:
    NPOI ví dụ và dll:
    http:/poi.codeplex.com/downloads/get/375373
    NPOI source code:
    http:/poi.codeplex.com/downloads/get/375374

  2. #2
    Ngày tham gia
    Sep 2015
    Bài viết
    0
    tốc độ khá ấn tượng, cám nhơ nhiều nhé.
    Chúc "chủ thớt" năm mới vui vẻ và hạnh phúc

  3. #3
    Ngày tham gia
    Sep 2015
    Đang ở
    Hà Nội
    Bài viết
    0
    Tiện đây mình muốn hỏi các bạn về export ra file excel trên window form:
    Đa số khi xuất ra file excel thì dùng thư viện:
    using ExcelCOM = Microsoft.Office.Interop.Excel; //làm việc với excel

    Và mình đã thử nhưng các hướng dẫn trên mạng thì thường là khi kích 1 nút ấn --> tạo file excel hoặc mở file excel lên rồi --> đưa dữ liệu vào --> exit luôn.
    Vi dụ:

    Mã:
    public void CreatExcel(string path, string nameExcel)
            {
                ExcelCOM.Application exApp = new ExcelCOM.Application();
                ExcelCOM.Workbook exBook = exApp.Workbooks.Add(ExcelCOM.XlWBATemplate.xlWBATWorksheet);
                ExcelCOM.Worksheet exSheet = (ExcelCOM.Worksheet)exBook.Worksheets[1];
    
                pathExcel = path;
                exSheet.Name = nameExcel;
    
                ExcelCOM.Range r = (ExcelCOM.Range)exSheet.get_Range("A1", "A4");
                r.Value2 = "aaaaaaaaaaaaaaaa";
                r.Columns.AutoFit();
    exBook.SaveAs(pathExcel, ExcelCOM.XlFileFormat.xlWorkbookNormal, null, null, false, false, ExcelCOM.XlSaveAsAccessMode.xlExclusive,
                                false, false, false, false, false);
    
                exBook.Close(false, false, false);
                exApp.Quit();
    
                System.Runtime.InteropServices.Marshal.ReleaseComObject(exBook);
                System.Runtime.InteropServices.Marshal.ReleaseComObject(exApp);
    
            }
    Mình muốn hỏi là có cách nào để:
    Ấn nút 1: tạo file excel và mở lên
    Ấn nút 2: đưa dữ liệu vào
    Ấn nút 3:thoát và lưu file excel k?

    (nếu ko lưu thì khi thoát runtime C# thì bật task manager máy tính lên vẫn còn file EXE.exe chạy ngầm)
    Mình mới học C#. Mong các bạn giúp đỡ.
    Mình cảm ơn rất nhiều.

  4. #4
    Ngày tham gia
    Sep 2015
    Bài viết
    0
    Mô tả của bạn ngộ quá, trước giờ chưa nghe! mục đích của bạn làm việc này để làm gì nhỉ?
    Theo mình, chắc là không được đâu vì:
    nút 1: tạo excel và mở lên => khi đó file excel đã được mở bằng Microsoft Excel rồi, khi đó file sẽ bị lock lại. bạn chỉ có thể mở dưới dạng đọc (ReadOnly) nên khi bấm nút 2 Chương trình không thể đưa dữ liệu vào file đang mở được.

  5. #5
    Ngày tham gia
    Sep 2015
    Bài viết
    0
    Cảm ơn bạn đã quan tâm.
    Ngộ chắc tại mình k phải dân lập trình.
    Mình bên Điều Khiển Tư Động ngồi lập trình ứng dụng cho hệ thống của mình nên mình nghĩ là trước khi quá trình hệ thống(dây chuyền sản xuất) chạy thì mình bật file excel lên, rồi khi hệ thống chạy ta update thông số kỹ thuật vào file excel để cho người vận hành có thể quan sát cả trên giao diện điều khiển, cả trên file excel (cả 2 cùng mở). Khi hệ thống dừng hoặc khi nào muốn thì sẽ tắt file excel theo ý muốn người vận hành. Mình thấy thế hợp lý mà.

  6. #6
    Rất nhiều người biết ơn vì tinh thần chia sẻ của bạn, trong đó có mình.

  7. #7
    Ngày tham gia
    Sep 2015
    Bài viết
    0
    Trích dẫn Gửi bởi vthang.mta
    Tiện đây mình muốn hỏi các bạn về export ra file excel trên window form:
    Đa số khi xuất ra file excel thì dùng thư viện:
    using ExcelCOM = Microsoft.Office.Interop.Excel; //làm việc với excel

    Và mình đã thử nhưng các hướng dẫn trên mạng thì thường là khi kích 1 nút ấn --> tạo file excel hoặc mở file excel lên rồi --> đưa dữ liệu vào --> exit luôn.
    Vi dụ:

    Mã:
    public void CreatExcel(string path, string nameExcel)
            {
                ExcelCOM.Application exApp = new ExcelCOM.Application();
                ExcelCOM.Workbook exBook = exApp.Workbooks.Add(ExcelCOM.XlWBATemplate.xlWBATWorksheet);
                ExcelCOM.Worksheet exSheet = (ExcelCOM.Worksheet)exBook.Worksheets[1];
    
                pathExcel = path;
                exSheet.Name = nameExcel;
    
                ExcelCOM.Range r = (ExcelCOM.Range)exSheet.get_Range("A1", "A4");
                r.Value2 = "aaaaaaaaaaaaaaaa";
                r.Columns.AutoFit();
    exBook.SaveAs(pathExcel, ExcelCOM.XlFileFormat.xlWorkbookNormal, null, null, false, false, ExcelCOM.XlSaveAsAccessMode.xlExclusive,
                                false, false, false, false, false);
    
                exBook.Close(false, false, false);
                exApp.Quit();
    
                System.Runtime.InteropServices.Marshal.ReleaseComObject(exBook);
                System.Runtime.InteropServices.Marshal.ReleaseComObject(exApp);
    
            }
    Mình muốn hỏi là có cách nào để:
    Ấn nút 1: tạo file excel và mở lên
    Ấn nút 2: đưa dữ liệu vào
    Ấn nút 3:thoát và lưu file excel k?

    (nếu ko lưu thì khi thoát runtime C# thì bật task manager máy tính lên vẫn còn file EXE.exe chạy ngầm)
    Mình mới học C#. Mong các bạn giúp đỡ.
    Mình cảm ơn rất nhiều.
    Bạn thử tạo một biến exBook toàn cục. Sau đó chia hàm ra viết hen! (có lẽ đã quá trễ [IMG]images/smilies/biggrin.png[/IMG])

  8. #8
    Ngày tham gia
    Sep 2015
    Bài viết
    0
    Cảm ơn bạn đã chia sẻ.

  9. #9
    Ngày tham gia
    Sep 2015
    Bài viết
    0
    Rât cảm on bạn, nhưng bạn có biết cách nào mình xuất ra file excel mà nó có file mẫu excel giống như các chứng từ trong kế toán vậy đó.
    Trích dẫn Gửi bởi phong1040572
    Tình cờ tìm được thư viện kết xuất ra excel từ window form trên internet, nay share cho các anh chị em tham khảo. Dll này kết xuất ra excel nhanh hơn so với sử dụng Microsoft.Office.Interop.Excel.dll. các bạn tham khảo source code và cho ý kiến nhé:
    Tool này có tất cả các thao tác với tệp excel khi kết xuất ra như: kẻ khung, tô nền, merge cell, chỉnh độ rộng dòng-cột, định dạng font chữ, chèn hình......
    Trong ví dụ, mình dùng vòng lặp để kết xuất excel 100 cột, 10000 dòng, thời gian kết xuất trên máy mình (core 2 duo, 2G Ram) khoảng 15 giây!
    Đặc biệt, nếu máy không cài đặt Office, thư viện vẫn có thể kết xuất ra excel!

    Đây là link download ví dụ và dll của thư viện này, thư viện này hoàn toàn miễn phí:
    NPOI ví dụ và dll:
    http:/poi.codeplex.com/downloads/get/375373
    NPOI source code:
    http:/poi.codeplex.com/downloads/get/375374

  10. #10
    Ngày tham gia
    Sep 2015
    Bài viết
    0
    Trích dẫn Gửi bởi endyquach
    Rât cảm on bạn, nhưng bạn có biết cách nào mình xuất ra file excel mà nó có file mẫu excel giống như các chứng từ trong kế toán vậy đó.
    Để dùng với file mẫu bạn chỉ việc load file mẫu lên đối tượng excel.
    Rồi từ đối tượng đó bạn sửa dữ liệu.
    Sau khi lưu sẽ có định dạng như file mẫu.

 

 
Trang 1 của 2 12 CuốiCuối

Quyền viết bài

  • Bạn Không thể gửi Chủ đề mới
  • Bạn Không thể Gửi trả lời
  • Bạn Không thể Gửi file đính kèm
  • Bạn Không thể Sửa bài viết của mình
  •