Export ra excel từ girdview theo dữ liệu vừa tìm kiếm

Tôi đang làm chương trình và load dữ liệu theo điều kiện tìm kiếm và bind ra girdview theo yêu cầu đã ok. Bây giờ tôi muốn trên màn hình hiển thị girdview nhấn button sẽ xuất dữ liệu vừa tìm được ra excel.Tôi đã thử nhiều cách nhưng không biết cách lấy datatable trả về như thế nào. Bạn nào làm được giúp mình với. Cảm ơn!
Đây là code load dữ liệu lên girdview:
Mã:
private void LoadData(string idPB, string StartDate, string ToDate)
    {
        hmweb.Services.cChuyenMuc mChiPhi = new hmweb.Services.cChuyenMuc();
        DataTable dtb = new DataTable();
        dtb = mChiPhi.[COLOR=#ff0000]ChiPhi_Search[/COLOR](idPB, StartDate, ToDate);
        if (dtb.Rows.Count > 0)
        {
            pnlDanhSach.GroupingText = "Tìm thấy <u>" + dtb.Rows.Count.ToString() + "</u> mã chi phí";
            grvDanhSach.DataSource = dtb;
            grvDanhSach.DataBind();
            //ViewState["dtList"] = dtb;
        }
        else
        {
            pnlDanhSach.GroupingText = "Tìm thấy <u>0</u> mã chi phí";
        }
        mChiPhi = null;
    }
còn đây là code tìm kiếm:
Mã:
protected void lbtFind_Click(object sender, EventArgs e)
    {
        grvDanhSach.DataSource = null;
        grvDanhSach.DataBind();
        LoadData(cboPhongBan.SelectedValue, txtStartDate.Text.ToString(), txtToDate.Text.ToString());
    }
phương thức ChiPhi_Search:
Mã:
public DataTable ChiPhi_Search(string idPB, string strStartDate,string strToDate)
        {
            SqlParameter[] arrParam = {
                new SqlParameter("@idPB", SqlDbType.NVarChar),
                new SqlParameter("@StartDate", SqlDbType.NVarChar),
                new SqlParameter("@ToDate", SqlDbType.NVarChar)
                };
            arrParam[0].Value = idPB;
            arrParam[1].Value = strStartDate;
            arrParam[2].Value = strToDate;
            return ThucThiStoreTraVeBang("[COLOR=#ff0000]spTB_ChiPhi_Search[/COLOR]", arrParam);
        }

StoreProcedure spTB_ChiPhi_Search
Mã:
ALTER PROCEDURE [dbo].[spTB_ChiPhi_Search]
@idPB NVARCHAR(50),
@StartDate NVARCHAR(20),
@ToDate NVARCHAR(20)
AS
BEGIN
    
    DECLARE @SQL NVARCHAR(4000),@SQLDK NVARCHAR(1000)
    SET @SQL='
        SELECT     tcpp.idCP,tcpp.idPB, tpb.TenPB, 
                tcpp.SoTien, tcpp.NoiDung, 
                      tcpp.NgayNhap
        FROM         TB_ChiPhiPhong tcpp INNER JOIN
                      TB_PhongBan tpb ON tcpp.idPB = tpb.idPB 
        WHERE ''1''=''1'''
    --Tìm theo mã phòng ban
    IF @idPB<>''
        SET @SQLDK= ' and tcpp.idPB='''+@idPB+''''
    -- Tìm theo ngày
    IF @StartDate<>'' OR @ToDate<>''
        SET @SQLDK=@SQLDK+ ' and tcpp.NgayNhap between dbo.ChuyenTextSangDateTime('''+ @StartDate+''') and dbo.ChuyenTextSangDateTime('''+@ToDate+''' )'
        EXEC (@SQL+@SQLDK)
        --PRINT (@SQL+@SQLDK)
END
 
bạn viết bằng VB.Net ak.
bạn chỉ cần create file excel, có hàm đó mà, chỉ có 2 dòng là write được rồi.

-----------------------------------------------------------------------
P/S: Theo đuổi đam mê - Thành công sẽ đến với bạn.
 
Top