Danh mục

Hiển thị File Excel trong ASP.NET sử dụng C Sharp

Số trang: 13      Loại file: pdf      Dung lượng: 146.70 KB      Lượt xem: 13      Lượt tải: 0    
Jamona

Xem trước 2 trang đầu tiên của tài liệu này:

Thông tin tài liệu:

Mục đích của bài viết này là làm thế nào để hiển thị chính xác giá trị hay nội dung của các Sheet, cả lời chú thích trong một trang aspx. Điều này có thể rất có ích cho người phát triển muốn làm về tự động trong MS Office. Chương trình gồm có 2 Panel, 1 Panel chứa các thành phần điều khiển, Panel còn lại là nơi thể hiện nội dung của file Excel. Ta thấy quy trình tương đối đơn giản: Chọn File cần xem - tách File thành các Sheet - hiển thị các Sheet đó lên....
Nội dung trích xuất từ tài liệu:
Hiển thị File Excel trong ASP.NET sử dụng C Sharp Hiển thị File Excel trong ASP.NET sử dụng C Sharp Mục đích của bài viết này là làm thế nào để hiển thị chính xác giá trị hay nội dung của các Sheet, cả lời chú thích trong một trang aspx. Điều này có thể rất có ích cho người phát triển muốn làm về tự động trong MS Office. Chương trình gồm có 2 Panel, 1 Panel chứa các thành phần điều khiển, Panel còn lại là nơi thể hiện nội dung của file Excel. Ta thấy quy trình tương đối đơn giản: Chọn File cần xem -> tách File thành các Sheet -> hiển thị các Sheet đó lên. Trước hết, ta xử lý sự kiện click cho List button: protected static string m_strFileName = ; protected void btnAvailableShtAndChrt_Click(object sender, EventArgs e) { m_strFileName = txtfileValue.PostedFile.FileName; if (m_strFileName == ) { lblErrText.Text = File không Tồn tại; } else { string strTemp = m_strFileName.Substring(m_strFileName.Length - 3); strTemp = strTemp.ToUpper(); if (strTemp == XLS) { drpShtAndChrt.Items.Clear(); GetListofSheetsAndCharts(m_strFileName, true, drpShtAndChrt); } else { lblErrText.Text = File được chọn không đúng định dạng yêu cầu; } } } Trong hàm này, ta xây dựng Hàm GetListofSheetsAndCharts(m_strFileName, true, drpShtAndChrt) để tách File thành các Sheet và Chart, có nội dung như sau: public void GetListofSheetsAndCharts(string strFileName, bool bReadOnly, DropDownList drpList) { Excel.Workbook workbook = null; try { if (!bReadOnly) { // mở chế độ Write. workbook = appOP.Workbooks.Open(strFileName, 2, false, 5, , , true, Excel.XlPlatform.xlWindows, \t, false, true, 0, true, 1, 0); } else { // Mở chế độ Read workbook = appOP.Workbooks.Open(strFileName, 2, true, 5, , , true, Excel.XlPlatform.xlWindows, \t, false, true, 0, true, 1, 0); } // Đọc File Excel. object SheetRChart = null; int nTotalWorkSheets = workbook.Sheets.Count; int nIndex = 0; for (int nWorkSheet = 1; nWorkSheet { SheetRChart = workbook.Sheets[(object)nWorkSheet]; if (SheetRChart is Excel.Worksheet) { ListItem lstItemAdd = new ListItem(((Excel.Worksheet)SheetRChart).Name + *WorkSheet, nIndex.ToString(), true); drpList.Items.Add(lstItemAdd); lstItemAdd = null; nIndex++; } else if (SheetRChart is Excel.Chart) { ListItem lstItemAdd = new ListItem(((Excel.Chart)SheetRChart).Name + *Chart, nIndex.ToString(), true); drpList.Items.Add(lstItemAdd); lstItemAdd = null; nIndex++; } } if (workbook != null) { if (!bReadOnly) { // Đóng chế độ Write workbook.Save(); workbook = null; } else { // Đóng chế độ Read workbook.Close(false, false, Type.Missing); workbook = null; } } } catch (Exception expFile) { Response.Write(expFile.ToString()); } finally { if (workbook != null) { if (!bReadOnly) { // Đóng chế độ Write workbook.Save(); workbook = null; } else { // Đóng chế độ Read workbook.Close(false, false, Type.Missing); workbook = null; } } } } Ta để ý thấy hàm này có 3 tham số truyền vào: Tên File, Chế độ mở File và tên của DropDownList. Sau khi ta đã thực hiện xong bước tách File Excel thành các Sheet và chart, ta chỉ cần lựa chọn các Sheet hoặc các Chart để hiển thị lên. Ta xử lý sự kiện click nút Display: protected void btnDisplay_Click(object sender, EventArgs e) { if (drpShtAndChrt.SelectedIndex != -1) { string strSheetorChartName = drpShtAndChrt.SelectedItem.Text; // Ta phải xóa bỏ các ký tự * vì tên của các Sheet trong Excel không cho phép có kí tự này. char[] delimiterChars = { '*' }; string[] strTemp = strSheetorChartName.Split(delimiterChars); if (strTemp[1] == WorkSheet) { DisplayExcelSheet(m_strFileName, strTemp[0], true, lblErrText); } else if (strTemp[1] == Chart) { DisplayExcelSheet(m_strFileName, strTemp[0], true, lblErrText, true); } } } Ở trong hàm này ta phải kiểm tra xem ta lựa chọn File để hiển thị là Sheet hay là Chart. Ta dùng kỹ thuật Overloadding cho hàm DisplayExcelSheet() để thực hiện. Nếu là Sheet thì ta gọi hàm DisplayExcelSheet(m_strFileName, strTemp[0], true, lblErrText) với 4 tham số kèm theo. Còn ngược lại, nếu là Chart thì ta phải gọi hàm có 5 tham số. public bool DisplayExcelSheet(string strFileName, string strSheetRChartName, bool bReadOnly, Label lblErrorText) { return DisplayExcelSheet(strFileName, strSheetRChartName, bReadOnly, lblErrText, false); } public bool DisplayExcelSheet(string strFileName, string strSheetRChartName, bool bReadOnly, Label lblErrorText, bool bIsChart) { appOP.DisplayAlerts = false; Excel.Workbook workbook = null; Excel.Worksheet worksheet = null; Excel.Chart chart = null; try { if (!bReadOnly) { // Mở chế độ Write. workbook = appOP.Workbooks.Open(strFileName, 2, false, 5, , , true, Excel.XlPlatform. ...

Tài liệu được xem nhiều: