โปรแกรมดู C# ASP.NET Excel

คุณต้องการแสดงแผ่นงาน Microsoft Excel ภายในเว็บแอปพลิเคชันของคุณหรือไม่? คุณกำลังมองหา ASP.NET MVC Excel Viewer หรือไม่? ถ้าใช่ คุณลงจอดถูกที่แล้ว ในบล็อกนี้ คุณจะได้เรียนรู้วิธีสร้าง Excel Viewer และแสดงแผ่นงาน Excel ในแอปพลิเคชัน ASP.NET MVC โดยใช้ C# หลังจากใช้เวลาสักครู่และทำตามขั้นตอนง่ายๆ คุณก็จะได้ Excel (XLS หรือ XLSX) Viewer ของคุณเองและเริ่มทำงาน มาเริ่มกันเลย

คุณสมบัติของ ASP.NET MVC Excel Viewer

ASP.NET Excel Viewer ของเราจะมีคุณสมบัติดังต่อไปนี้ และคุณสามารถปรับปรุงได้ตามความต้องการของคุณ

  1. เรียกดูและดูไฟล์ Excel
  2. โหลดไฟล์ Excel เริ่มต้นเมื่อโหลดหน้า
  3. แท็บเพื่อนำทางระหว่างแผ่นงาน Excel

ขั้นตอนในการสร้าง Excel Viewer ใน ASP.NET MVC

ต่อไปนี้เป็นขั้นตอนง่ายๆ ในการดูไฟล์ Excel ใน ASP.NET MVC

  1. สร้างเว็บแอปพลิเคชัน ASP.NET MVC ใหม่ใน Visual Studio
แอปพลิเคชันเว็บ ASP.NET MVC
  1. เปิด NuGet Package Manager และติดตั้งแพ็คเกจ Aspose.Cells for .NET
ดูไฟล์ Excel ใน ASP.NET ในเบราว์เซอร์
  1. สร้างโฟลเดอร์ใหม่ “Documents” เพื่อเก็บไฟล์ Excel และโฟลเดอร์ย่อย “Rendered” เพื่อบันทึกภาพที่แสดงผล

  2. สร้างโฟลเดอร์ใหม่ด้วยชื่อ “ผู้ช่วยเหลือ” ในโฟลเดอร์รูท

  3. สร้างคลาสใหม่ที่มีชื่อว่า “Sheet” ในโฟลเดอร์ “Helpers” เพื่อเก็บข้อมูลของแผ่นงาน Excel

public class Sheet
{
	public string SheetName { get; set; }
	public string Path { get; set; }
}
  1. เปิดคลาส “HomeController” และแทนที่โค้ดด้วยสิ่งต่อไปนี้ ตรวจสอบให้แน่ใจว่าได้แทนที่ชื่อไฟล์ Excel เริ่มต้นในการดำเนินการดัชนี
public class HomeController : Controller
{
	public List<Sheet> sheets;

	[HttpGet]
	public ActionResult Index(string fileName)
	{
		sheets = new List<Sheet>();
		if (fileName == null)
		{
			// แสดงแผ่นงานเริ่มต้นในการโหลดหน้า
			sheets = RenderExcelWorksheetsAsImage("Workbook.xlsx");
		}
		else
		{
			sheets = RenderExcelWorksheetsAsImage(fileName);
		}

		return View(sheets);
	}
	public List<Sheet> RenderExcelWorksheetsAsImage(string FileName)
	{
		// โหลดสมุดงาน Excel 
		Workbook book = new Workbook(Server.MapPath(Path.Combine("~/Documents", FileName)));
		var workSheets = new List<Sheet>();
		// ตั้งค่าตัวเลือกการแสดงภาพ
		ImageOrPrintOptions options = new ImageOrPrintOptions();
		options.HorizontalResolution = 200;
		options.VerticalResolution = 200;
		options.AllColumnsInOnePagePerSheet = true;
		options.OnePagePerSheet = true;
		options.TextCrossType = TextCrossType.Default;
		options.ImageType = Aspose.Cells.Drawing.ImageType.Png;

		string imagePath = "";
		string basePath = Server.MapPath("~/");

		// สร้างตัวแสดงสมุดงาน Excel
		WorkbookRender wr = new WorkbookRender(book, options);
		// บันทึกและดูแผ่นงาน
		for (int j = 0; j < book.Worksheets.Count; j++)
		{
			imagePath = Path.Combine("/Documents/Rendering", string.Format("sheet_{0}.png", j));
			wr.ToImage(j, basePath + imagePath);
			workSheets.Add(new Sheet { SheetName = string.Format("{0}", book.Worksheets[j].Name), Path = imagePath });
		}

		return workSheets;
	}
}
  1. เปิด Views/Home/index.cshtml และแทนที่เนื้อหาด้วยสคริปต์ต่อไปนี้
@{
    ViewBag.Title = "Home Page";
    string[] files = Directory.GetFiles(Server.MapPath("~/Documents/"), "*.xlsx");
}
@model List<Excel_Viewer.Helper.Sheet>
@{
    Layout = null;
}
<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="utf-8">
    <meta http-equiv="X-UA-Compatible" content="IE=edge">
    <meta name="viewport" content="width=device-width, initial-scale=1">
    <title>Excel Viewer</title>
    <!-- CSS Includes -->
    <link rel="stylesheet" href="//netdna.bootstrapcdn.com/bootstrap/4.1.3/css/bootstrap.min.css">
    <link rel="stylesheet" href="https://cdnjs.cloudflare.com/ajax/libs/font-awesome/4.7.0/css/font-awesome.min.css">
</head>
<body>
    <div class="container">
        <nav class="navbar navbar-expand-lg navbar-dark bg-dark">
            <a class="navbar-brand" href="#">Spreadsheet Viewer</a>
            <button class="navbar-toggler" type="button" data-toggle="collapse" data-target="#navbarNav" aria-controls="navbarNav" aria-expanded="false" aria-label="Toggle navigation">
                <span class="navbar-toggler-icon"></span>
            </button>
            <div class="collapse navbar-collapse" id="navbarNav">
                <ul class="navbar-nav">
                    <li class="nav-item active">
                        <button type="button" class="btn btn-primary" data-toggle="modal" data-target="#exampleModal">
                            browse
                        </button>
                    </li>
                </ul>
            </div>
        </nav>
        <br />
        <ul class="nav nav-tabs" id="myTab" role="tablist">
            @for (int i = 0; i < Model.Count; i++)
            {
                if (i == 0)
                {
                    <li class="nav-item">
                        <a class="nav-link active" id="@Model[i].SheetName.Replace(' ','_')-tab" data-toggle="tab" href="#@Model[i].SheetName.Replace(' ','_')" role="tab" aria-controls="@Model[i].SheetName">@Model[i].SheetName</a>
                    </li>
                }
                else
                {
                    <li class="nav-item">
                        <a class="nav-link" id="@Model[i].SheetName.Replace(' ','_')-tab" data-toggle="tab" href="#@Model[i].SheetName.Replace(' ','_')" role="tab" aria-controls="@Model[i].SheetName">@Model[i].SheetName</a>
                    </li>
                }
            }
        </ul>
        <div class="tab-content" id="myTabContent">
            @for (int i = 0; i < Model.Count; i++)
            {
                if (i == 0)
                {
                    <div class="tab-pane fade show active" id="@Model[i].SheetName.Replace(' ','_')" role="tabpanel"><br />
                        <div class="card">
                            <div class="card-body"> <img src="@Model[i].Path" style="width: 11in" /></div>
                        </div>
                    </div>
                }
                else
                {
                    <div class="tab-pane fade" id="@Model[i].SheetName.Replace(' ','_')" role="tabpanel"><br />
                        <div class="card">
                            <div class="card-body"> <img src="@Model[i].Path" style="width: 11in" /></div>
                        </div>
                    </div>
                }
            }
        </div>
    </div>
    <!-- Modal -->
    <div class="modal fade" id="exampleModal" tabindex="-1" role="dialog" aria-labelledby="exampleModalLabel" aria-hidden="true">
        <div class="modal-dialog" role="document">
            <div class="modal-content">
                <div class="modal-header">
                    <h5 class="modal-title" id="exampleModalLabel">Select a file</h5>
                    <button type="button" class="close" data-dismiss="modal" aria-label="Close">
                        <span aria-hidden="true">&times;</span>
                    </button>
                </div>
                <div class="modal-body">
                    <div class="list-group">
                        @foreach (string s in files)
                        {
                            string fileName = Path.GetFileName(s);
                            @Html.ActionLink(fileName, "Index", "Home", new { fileName = fileName }, new { @class = "list-group-item" })
                        }
                    </div>
                </div>
                <div class="modal-footer">
                    <button type="button" class="btn btn-secondary" data-dismiss="modal">Close</button>
                </div>
            </div>
        </div>
    </div>
    <!-- JS includes -->
    <script src="//ajax.googleapis.com/ajax/libs/jquery/1.11.0/jquery.min.js"></script>
    <script src="//netdna.bootstrapcdn.com/bootstrap/4.1.3/js/bootstrap.min.js"></script> @**@
    <script src="//ajax.aspnetcdn.com/ajax/jquery.validate/1.11.1/jquery.validate.min.js"></script>
    <script src="//ajax.aspnetcdn.com/ajax/mvc/4.0/jquery.validate.unobtrusive.min.js"></script>
</body>
</html>
  1. สร้างแอปพลิเคชันและเรียกใช้งานในเบราว์เซอร์ที่คุณชื่นชอบ

ดูไฟล์ Excel ใน ASP.NET MVC Viewer - สาธิต

ไฟล์ Excel เริ่มต้นจะปรากฏขึ้นเมื่อคุณเริ่มแอปพลิเคชันเป็นครั้งแรก

โปรแกรมแสดง Excel ใน ASP.NET C#

เปิดไฟล์ Excel

ในการเปิดไฟล์ Excel ให้คลิกปุ่มเรียกดูและเลือกไฟล์จากรายการ

เรียกดูไฟล์ Excel
เปิดไฟล์ Excel ใน ASP.NET C#

นำทางระหว่างแผ่นงาน Excel โดยใช้แท็บ

แผ่นงานทั้งหมดในสมุดงาน Excel จะแสดงในรูปแบบของแท็บ คุณสามารถคลิกแท็บเพื่อนำทางระหว่างแผ่นงาน

แสดงไฟล์ Excel ใน ASP.NET

ดาวน์โหลดซอร์สโค้ด

แอปพลิเคชันนี้เป็นโอเพ่นซอร์สและมีซอร์สโค้ดบน GitHub

รับใบอนุญาตชั่วคราวสำหรับ Aspose.Cells สำหรับ .NET

คุณสามารถรับ ใบอนุญาตชั่วคราว ของ Aspose.Cells สำหรับ .NET API เพื่อหลีกเลี่ยงข้อจำกัดในการประเมิน/ทดลองใช้