ASP.NET'te Excel Nasıl Görüntülenir
Bu kapsamlı eğitim, ASP.NET MVC ve IronXL kullanarak bir Excel görüntüleyici nasıl oluşturulacağını gösterecektir. Bu görüntüleyici, kullanıcıların doğrudan web sayfalarından Excel dosyalarını görüntülemelerine, düzenlemelerine ve gezmelerine olanak tanır.
IronXL nedir?
IronXL, Excel işlemleriyle ilgili çok sayıda işlevselliği sağlayan güçlü bir .NET kütüphanesidir. XLS, XLSX, CSV ve daha pek çok dosya formatında .NET geliştiricilerinin Excel belgelerini yazmasına, düzenlemesine ve okumasına olanak tanıyan basitleştirilmiş bir API sunar.
IronXL ile Excel dosyalarını okuyabilir, veri çıkarabilir, çalışma sayfaları ekleyebilir veya düzenleyebilir, satır ve sütunlar oluşturabilir veya değiştirebilir, formüller uygulayabilir, değişiklikleri kaydedebilir ve daha pek çok şey yapabilirsiniz. Tüm bu işlemler makinize Microsoft Excel yüklü olmadan gerçekleştirilebilir.
IronXL, resimleri, stilleri, koşullu biçimlendirmeleri ve diğer karmaşık Excel özelliklerini destekler ve .NET Excel işlemleri için kapsamlı bir çözüm sunar. ASP.NET MVC uygulamalarınızın veri kaynağı ve hesap tablosu gereksinimlerini karşılamak için mükemmeldir. IronXL kütüphanesi, ASP.NET Web Uygulamalarında Excel dosyalarını görüntülemek için kullanılacaktır.
Ön Koşullar
- ASP.NET MVC hakkında temel bilgi
- Makinanızda yüklü Visual Studio
- IronXL kütüphanesi yüklendi. Kurulum kılavuzunu resmi dokümantasyonlarında bulabilirsiniz.
Başlarken
Öncelikle, Visual Studio'da yeni bir ASP.NET MVC projesi oluşturalım.
- Visual Studio'yu açın.
- Dosya > Yeni > Proje seçeneğine tıklayın.
- Yeni proje penceresinde ASP.NET Web Uygulaması (.NET Framework) şablonunu seçin.
Visual Studio'da yeni bir ASP.NET Web Uygulaması oluşturun
- Projenize 'ExcelViewer' adını verin, proje konumunu seçin ve Oluştur düğmesine tıklayın.
Projenizi yapılandırın
Bu makale, bu ASP.NET MVC uygulamasında Excel görüntüleyici işlevselliğinin uygulanmasına odaklanacaktır.
Projenize IronXL Ekleyin
Excel dosya formatlarını (xls, xlsx ve csv gibi) işlemek için IronXL, Excel belgelerini yüklemek, okumak, yazmak ve hatta Excel verilerini değiştirmek için kapsamlı özellikler sunar. Formülleri, resimleri, biçimlendirmeleri ve daha fazlasını destekler.
- Çözüm Gezgini'nde projenize sağ tıklayın ve NuGet Paketlerini Yönet'e gidin.
- NuGet Paket Yöneticisi'nde IronXl.Excel için arama yapın.
- Projenize eklemek için Yükle'ye tıklayın.
IronXL paketini NuGet Paket Yöneticisi UI'de arayın ve yükleyin
IronXL'yi Paket Yöneticisi Konsolu kullanarak aşağıdaki komutla da yükleyebilirsiniz:
Install-Package IronXl.Excel
Paket Yöneticisi Konsolundan IronXL paketini yükleyin
IronXL yüklendiğine göre bir sonraki adıma geçelim.
Modelleri İnşa Etme
ExcelModel
İlk adım, Excel verisi için bir model oluşturmaktır. ExcelModel sınıfı, tek bir Excel sayfasını temsil edecek ve Excel sayfasında bulunan sayfa adı ve verileri içerecektir.
namespace Excel_File_Viewer_IronXl.Models
{
public class ExcelModel
{
public string SheetName { get; set; }
// Data is a list of string arrays, each array represents a row in the sheet.
public List<string[]> Data { get; set; }
}
}
namespace Excel_File_Viewer_IronXl.Models
{
public class ExcelModel
{
public string SheetName { get; set; }
// Data is a list of string arrays, each array represents a row in the sheet.
public List<string[]> Data { get; set; }
}
}
Imports System.Collections.Generic
Namespace Excel_File_Viewer_IronXl.Models
Public Class ExcelModel
Public Property SheetName As String
' Data is a list of string arrays, each array represents a row in the sheet.
Public Property Data As List(Of String())
End Class
End Namespace
ExcelModel iki özellik ile tanımlanmıştır, SheetName ve Data. SheetName her Excel sayfasının adını tutacak basit bir stringdir. Data her bir satırın Excel sayfasındaki verilerini saklamak için string dizilerinin bir listesidir.
ExcelViewModel
Şimdi ExcelViewModel oluşturacağız. Bu model bir dosya, bir mesaj ve dosyadaki tüm sayfalardan verileri temsil eden ExcelModel listesini içeren bir kaplamadır.
using Microsoft.AspNetCore.Http;
using System.Collections.Generic;
namespace Excel_File_Viewer_IronXl.Models
{
public class ExcelViewModel
{
public IFormFile File { get; set; } // For uploading Excel file
public string Message { get; set; } // Message for storing success/error messages
public List<ExcelModel> ExcelData { get; set; } // List to store data from all sheets
}
}
using Microsoft.AspNetCore.Http;
using System.Collections.Generic;
namespace Excel_File_Viewer_IronXl.Models
{
public class ExcelViewModel
{
public IFormFile File { get; set; } // For uploading Excel file
public string Message { get; set; } // Message for storing success/error messages
public List<ExcelModel> ExcelData { get; set; } // List to store data from all sheets
}
}
Imports Microsoft.AspNetCore.Http
Imports System.Collections.Generic
Namespace Excel_File_Viewer_IronXl.Models
Public Class ExcelViewModel
Public Property File As IFormFile ' For uploading Excel file
Public Property Message As String ' Message for storing success/error messages
Public Property ExcelData As List(Of ExcelModel) ' List to store data from all sheets
End Class
End Namespace
Bu sınıf, görünüm modeli olarak kullanılacaktır. Dosya yükleme için bir IFormFile özelliği, herhangi bir mesajı görüntülemek için bir Message stringi, ve elde edilen Excel verilerini saklamak için bir List<ExcelModel> vardır.
5. Veri çıkarmak için Excel dosyalarını yüklemek için ExcelController oluşturun
Ardından yeni bir ExcelController oluşturun. İşte sihir burada gerçekleşiyor! Excel dosyaları, IronXL'nin WorkBook.Load fonksiyonu kullanılarak yüklenir, çalışma sayfalarında döngü sağlanır, veriler çıkarılır ve ExcelViewModel eklenir.
using Excel_File_Viewer_IronXl.Models;
using IronXL;
using System.Collections.Generic;
using System.Web.Mvc;
using System;
using System.Linq;
public class ExcelController : Controller
{
// GET: Excel
public ActionResult Index()
{
var model = new ExcelViewModel();
// Define the file path for the Excel file
string filePath = Server.MapPath("~/App_Data/Test.xlsx");
// List to store data for each sheet
List<ExcelModel> data = new List<ExcelModel>();
try
{
// Load workbook directly from a file path
var workbook = WorkBook.Load(filePath);
// Loop through all worksheets in the workbook
foreach (var worksheet in workbook.WorkSheets)
{
// Add each worksheet's name and data to the data list
data.Add(new ExcelModel
{
SheetName = worksheet.Name,
Data = worksheet.Rows.Select(r => r.ToArray().Select(c => c.Value.ToString()).ToArray()).ToList()
});
}
model.ExcelData = data;
model.Message = "File processed successfully!";
}
catch (Exception ex)
{
model.Message = $"Error occurred while processing file: {ex.Message}";
}
return View(model);
}
}
using Excel_File_Viewer_IronXl.Models;
using IronXL;
using System.Collections.Generic;
using System.Web.Mvc;
using System;
using System.Linq;
public class ExcelController : Controller
{
// GET: Excel
public ActionResult Index()
{
var model = new ExcelViewModel();
// Define the file path for the Excel file
string filePath = Server.MapPath("~/App_Data/Test.xlsx");
// List to store data for each sheet
List<ExcelModel> data = new List<ExcelModel>();
try
{
// Load workbook directly from a file path
var workbook = WorkBook.Load(filePath);
// Loop through all worksheets in the workbook
foreach (var worksheet in workbook.WorkSheets)
{
// Add each worksheet's name and data to the data list
data.Add(new ExcelModel
{
SheetName = worksheet.Name,
Data = worksheet.Rows.Select(r => r.ToArray().Select(c => c.Value.ToString()).ToArray()).ToList()
});
}
model.ExcelData = data;
model.Message = "File processed successfully!";
}
catch (Exception ex)
{
model.Message = $"Error occurred while processing file: {ex.Message}";
}
return View(model);
}
}
Imports Excel_File_Viewer_IronXl.Models
Imports IronXL
Imports System.Collections.Generic
Imports System.Web.Mvc
Imports System
Imports System.Linq
Public Class ExcelController
Inherits Controller
' GET: Excel
Public Function Index() As ActionResult
Dim model As New ExcelViewModel()
' Define the file path for the Excel file
Dim filePath As String = Server.MapPath("~/App_Data/Test.xlsx")
' List to store data for each sheet
Dim data As New List(Of ExcelModel)()
Try
' Load workbook directly from a file path
Dim workbook = WorkBook.Load(filePath)
' Loop through all worksheets in the workbook
For Each worksheet In workbook.WorkSheets
' Add each worksheet's name and data to the data list
data.Add(New ExcelModel With {
.SheetName = worksheet.Name,
.Data = worksheet.Rows.Select(Function(r) r.ToArray().Select(Function(c) c.Value.ToString()).ToArray()).ToList()
})
Next
model.ExcelData = data
model.Message = "File processed successfully!"
Catch ex As Exception
model.Message = $"Error occurred while processing file: {ex.Message}"
End Try
Return View(model)
End Function
End Class
Burada, bir ExcelViewModel başlatın ve ardından IronXL kullanarak bir WorkBook yükleyin, her bir WorkSheet döngüsünde, her WorkSheet için, çalışma sayfasının adı ve verileri ile bir ExcelModel oluştururuz. Sonra ExcelModel, ExcelViewModel içindeki ExcelData listesine eklenir.
Aşağıdaki Excel dosyasının verileri yüklenecek ve görüntülenecek:
Örnek Excel Dosyası
6. Görünümü Oluşturun
Views/Excel dizininde, Excel verilerini görüntülemek için yeni bir HTML dosyası Index.cshtml oluşturun. Ardından Bootstrap'in nav-tabs kullanarak Excel dosyasındaki her bir sayfayı temsil edin. Her sayfa ayrı bir sekme olacak ve sekmenin içeriği sayfanın verileri olacaktır.
@model Excel_File_Viewer_IronXl.Models.ExcelViewModel
@{
ViewBag.Title = "Index";
}
<h2>Excel File Viewer</h2>
@if (Model.ExcelData != null)
{
<ul class="nav nav-tabs" id="myTab" role="tablist">
@for (int i = 0; i < Model.ExcelData.Count; i++)
{
<li class="nav-item">
<a class="nav-link @(i == 0 ? "active" : "")" id="tab-@i" data-toggle="tab" href="#content-@i" role="tab" aria-controls="content-@i" aria-selected="@(i == 0)">
@Model.ExcelData[i].SheetName
</a>
</li>
}
</ul>
<div class="tab-content" id="myTabContent">
@for (int i = 0; i < Model.ExcelData.Count; i++)
{
<div class="tab-pane fade @(i == 0 ? "show active" : "")" id="content-@i" role="tabpanel" aria-labelledby="tab-@i">
<table class="table table-bordered">
@foreach (var row in Model.ExcelData[i].Data)
{
<tr>
@foreach (var cell in row)
{
<td>@cell</td>
}
</tr>
}
</table>
</div>
}
</div>
}
@model Excel_File_Viewer_IronXl.Models.ExcelViewModel
@{
ViewBag.Title = "Index";
}
<h2>Excel File Viewer</h2>
@if (Model.ExcelData != null)
{
<ul class="nav nav-tabs" id="myTab" role="tablist">
@for (int i = 0; i < Model.ExcelData.Count; i++)
{
<li class="nav-item">
<a class="nav-link @(i == 0 ? "active" : "")" id="tab-@i" data-toggle="tab" href="#content-@i" role="tab" aria-controls="content-@i" aria-selected="@(i == 0)">
@Model.ExcelData[i].SheetName
</a>
</li>
}
</ul>
<div class="tab-content" id="myTabContent">
@for (int i = 0; i < Model.ExcelData.Count; i++)
{
<div class="tab-pane fade @(i == 0 ? "show active" : "")" id="content-@i" role="tabpanel" aria-labelledby="tab-@i">
<table class="table table-bordered">
@foreach (var row in Model.ExcelData[i].Data)
{
<tr>
@foreach (var cell in row)
{
<td>@cell</td>
}
</tr>
}
</table>
</div>
}
</div>
}
Bu kod örneğinde, nav nav-tabs, Excel dosyasından bir sayfayı temsil eden bir sekme listesi oluşturur. İlgili sekme içeriği, ilgili sayfanın verilerini tablo formatında gösterecektir. Bazı değişiklikler yaparak, Excel dosyasını elle seçmek için bir göz atma butonu eklenir.
Programı Çalıştırma
Tüm adımları izledikten ve projeyi doğru bir şekilde kurduktan sonra, şimdi çalıştırma zamanı. Excel dosyanızdaki sayfa isimlerine göre adlandırılmış sekmeleri içeren bir web sayfası görmelisiniz. Bir sekmeye tıkladığınızda, ilgili sayfanın verileri tablo formatında görüntülenecek.
Excel Görüntüleyici
Sonuç
IronXL kullanarak bir ASP.NET Excel görüntüleyicisi oluşturdunuz! Bu güçlü kütüphane, kullanıcıların Excel dosyalarıyla daha verimli ve yönetilebilir bir şekilde çalışmasını sağlar. IronXL'in yardımıyla, .NET ortamında Excel dosyalarıyla çalışmak hiç bu kadar kolay olmamıştı.
IronXL, geniş işlevselliğini keşfetmenize ve anlamanıza imkan tanıyan bir ücretsiz deneme sunar, böylece herhangi bir peşin maliyet olmadan deneyebilirsiniz. Test edip ihtiyaçlarınız için mükemmel bir çözüm bulduğunuzda lisans ücretleri $799'den başlamaktadır.
Sıkça Sorulan Sorular
ASP.NET MVC kullanarak bir Excel görüntüleyici nasıl oluşturabilirim?
Visual Studio'da yeni bir proje kurarak ve NuGet Paket Yöneticisi aracılığıyla IronXL kütüphanesini ekleyerek ASP.NET MVC kullanarak bir Excel görüntüleyici oluşturabilirsiniz. Bu, Excel dosyalarını doğrudan web uygulamanızda yüklemenize, görüntülemenize ve manipüle etmenize olanak tanır.
Excel dosyalarını işlemek için bir ASP.NET MVC projesini nasıl kurarım?
Excel dosyalarını işlemek için bir ASP.NET MVC projesi kurmak için Visual Studio'yu açın, yeni bir ASP.NET Web Uygulaması projesi oluşturun ve IronXL kütüphanesini NuGet üzerinden yükleyin. Ardından, Excel verilerini yönetmek için ExcelModel ve ExcelViewModel gibi modeller uygulayın ve Excel dosyalarını yüklemek ve işlemek için ExcelController'ı kullanın.
Bir ASP.NET uygulamasında birden fazla Excel sayfası görüntüleyebilir miyim?
Evet, IronXL'i kullanarak Excel dosyasını yükleyerek ve ardından her sayfa için ayrı sekmeler oluşturarak Bootstrap'in nav-tabs'ını kullanarak bir ASP.NET uygulamasında birden fazla Excel sayfasını görüntüleyebilirsiniz.
ASP.NET'te bir .NET kütüphanesi kullanarak bir Excel dosyasını nasıl yükler ve işlerim?
ASP.NET'te, IronXL'in WorkBook.Load yöntemini kullanarak bir Excel dosyası yükleyebilir ve işleyebilirsiniz. Bu yöntem, Excel dosyanızını okumanıza, çalışma sayfalarında gezinmenize ve verileri görüntüleme veya daha fazla manipülasyon için çıkarmanıza olanak tanır.
.NET'te Excel işlemleri için IronXL kullanmanın avantajları nelerdir?
IronXL, çeşitli Excel dosya formatları için destek, resimler ve koşullu formatlama gibi karmaşık Excel özelliklerini manipüle edebilme yeteneği içermektedir ve sunucu üzerinde Microsoft Excel yüklemesi gerektirmemesi avantajlarını sunar.
ASP.NET Excel görüntüleyici oluştururken yaygın sorunları nasıl çözümlerim?
ASP.NET Excel görüntüleyici oluştururken yaygın sorunlar, IronXL kütüphanesinin NuGet üzerinden doğru şekilde yüklendiğinden emin olunarak, gerekli tüm modellerin ve kontrolörlerin doğru bir şekilde uygulandığını ve Excel dosyalarının desteklenen bir formatta olduğu kontrol edilerek çözülebilir.
Bir ASP.NET web sayfasından doğrudan Excel dosyalarını düzenlemek mümkün mü?
Evet, IronXL kullanarak bir ASP.NET web sayfasından doğrudan Excel dosyalarını düzenlemek mümkündür. Kütüphane, Excel dosyalarını web uygulamanıza yüklemenize, verileri değiştirmenize ve değişiklikleri dosyaya na çabasızca geri kaydetmenize olanak tanır.
IronXL hem Excel dosyalarını okumayı hem de yazmayı destekliyor mu?
Evet, IronXL hem Excel dosyalarını okumayı hem de yazmayı destekler. Mevcut Excel belgelerinden veri okumak ve yeni veri veya değişiklikleri XLS, XLSX ve CSV dahil olmak üzere birden fazla formatta Excel dosyalarına yazmak için kullanabilirsiniz.
Bir ASP.NET MVC uygulamasında Excel verilerini yönetmek için hangi modeller oluşturulmalıdır?
Bir ASP.NET MVC uygulamasında, ExcelModel gibi bireysel Excel sayfalarını temsil eden modeller ve bir sayfa koleksiyonunu yönetmek ve dosya yükleme ve mesajlaşma işlemlerini gerçekleştirmek için ExcelViewModel oluşturmalısınız.
IronXL’in özelliklerini satın almadan önce nasıl test edebilirim?
IronXL’ın özelliklerini, web sitelerinden ücretsiz deneme sürümünü indirerek test edebilirsiniz. Bu deneme, Excel dosyalarını .NET uygulamalarınız içinde işleme yeteneklərini keşfetmenize, başlangıçta hiçbir maliyet olmadan olanak tanır.




