سلام و دعای خیر
قصد دارم اطلاعات فایل اکسل را با استفاده از کدهای سی شارپ و تکنولوژی انتیتی در دیتاگرید نمایش دهم. سپس در دیتابیس Sql Server ذخیره کنم. اما مشکلی که هست. اطلاعات فایل اکسل بصورت افقی و ستونی می باشد(پیوست ذیل). چگونه می توان اطلاعات ستونها را با توجه به کدپرسنلی و تعدا ستونها ، بصورت سطری و عمودی در دیتاگرید نمایش داد؟ تا بتوان در جدول پرداختی ها ذخیره کرد؟ ممنون دوستان
تصویر ویوی جدول در دیتابیس
نمونه جدول
public partial class WagePayRowsk
{
[DisplayName("کدپرسنلی")]
public long? EmpID { get; set; }
[DisplayName("کدپرداختی")]
public int CodePayID { get; set; }
[DisplayName("عنوان پرداختی")]
public string CodeDescription { get; set; }
[DisplayName("مبلغ پرداختی")]
public Nullable<long> Val { get; set; }
}
نمونه فایل اکسل
تصویر نمونه اطلاعات ثبت شده در جدول Sql Server
سلام دوست گرامی
برای خواندن اطلاعات از فایل اکسل و ذخیره در دیتابیس که با یه سرچ در گوگل میتونید کدهای زیادی رو برای این کار پیدا کنید :
خواندن اطلاعات از فایل اکسل در سی شارپ
اگر برای نوشتن کدها اشکال دارید بفرمایید تا یک نمونه پیدا کنیم براتون آپلود کنیم.
اما در سوال فرمودید "اطلاعات فایل اکسل بصورت افقی و ستونی می باشد". این قسمت رو متوجه نشدم. شما تصویر یک فایل اکسل قرار دادید که هر ستون حاوی یه سری اطلاعات هست (کد پرسنلی، حق شغل و ...) خب معادل همین ستون ها رو در جدول Sql Server هم باید ایجاد کنید تا بتونید اطلاعات رو دقیقا داخل ستونهای دیتابیس بریزید. منظور از ستون افقی چی هست دقیقا ؟
دوست عزیز بهتره برای اینکه سوالتون برای مخاطب راحت تر قابل درک باشه یه نمونه ساده شده (نه شامل این همه ستون و اطلاعات) ایجاد کنید و یه تصویر هم از خروجی کاری که نیاز دارید قرار بدید تا به راحتی قابل تست و اجرا باشه. الان با این تصاویری که قرار دادید امکان تست چیزی نیست و صرفا باید تیوری پاسخ داد. اما با همین اطلاعات پاسخ زیر رو براتون پیدا کردم امیدوارم به درد شما بخوره :
برای تغییر ترتیب سطرها و ستونها در فایل اکسل در C#، میتونید از کتابخانههایی مثل EPPlus یا ClosedXML در سی شارپ استفاد کنید. اگر هدفتون جابجایی دادهها بین سطرها و ستونها هست، میتونید با استفاده از حلقههای تو در تو، دادهها را از سلولهای موجود بخونید و در مکانهای جدید قرار دهید.
اینم نمونهای از کدی که با استفاده از کتابخانه EPPlus این کار را انجام میدهد :
using OfficeOpenXml;
using System.IO;
class Program
{
static void Main()
{
// بارگذاری فایل اکسل
var fileInfo = new FileInfo("input.xlsx");
using (var package = new ExcelPackage(fileInfo))
{
var worksheet = package.Workbook.Worksheets[0];
int rowCount = worksheet.Dimension.End.Row;
int colCount = worksheet.Dimension.End.Column;
// ایجاد یک شیت جدید برای داده های ترانهاده شده
var newWorksheet = package.Workbook.Worksheets.Add("Transposed");
// انتقال داده ها
for (int row = 1; row <= rowCount; row++)
{
for (int col = 1; col <= colCount; col++)
{
newWorksheet.Cells[col, row].Value = worksheet.Cells[row, col].Value;
}
}
// ذخیره فایل جدید
package.SaveAs(new FileInfo("output.xlsx"));
}
}
}
ضمنا برای استفاده از این کد باید کتابخانه EPPlus رو از nuget دانلود و نصب کنید.
تاریخ :
1398/10/01
- ساعت :
01:02:00 PM
- بازدید :
5974
- پاسخ :
1
|
تاریخ :
1399/11/10
- ساعت :
10:01:00 PM
- بازدید :
7662
- پاسخ :
5
|
تاریخ :
1404/01/28
- ساعت :
10:46:00 AM
- بازدید :
194
- پاسخ :
1
|
تاریخ :
1404/01/28
- ساعت :
10:27:00 AM
- بازدید :
178
- پاسخ :
1
|
تاریخ :
1399/11/25
- ساعت :
11:22:00 AM
- بازدید :
4227
- پاسخ :
2
|
تاریخ :
1403/12/02
- ساعت :
12:09:00 AM
- بازدید :
512
- پاسخ :
1
|
تاریخ :
1398/07/08
- ساعت :
12:21:00 AM
- بازدید :
3199
- پاسخ :
2
|
تاریخ :
1403/11/23
- ساعت :
08:24:00 PM
- بازدید :
500
- پاسخ :
2
|
تاریخ :
1399/04/09
- ساعت :
08:51:00 PM
- بازدید :
3286
- پاسخ :
1
|
تاریخ :
1399/03/25
- ساعت :
08:58:00 PM
- بازدید :
4029
- پاسخ :
1
|
تاریخ :
1404/04/21
- ساعت :
07:06:00 PM
- بازدید :
17
- پاسخ :
0
|
تاریخ :
1404/04/20
- ساعت :
12:20:00 PM
- بازدید :
59
- پاسخ :
1
|
تاریخ :
1398/09/08
- ساعت :
11:21:00 PM
- بازدید :
5162
- پاسخ :
3
|
تاریخ :
1401/01/28
- ساعت :
04:04:00 PM
- بازدید :
2704
- پاسخ :
1
|
تاریخ :
1404/04/16
- ساعت :
05:27:00 PM
- بازدید :
71
- پاسخ :
1
|
تاریخ :
1404/04/16
- ساعت :
06:22:00 PM
- بازدید :
48
- پاسخ :
1
|
تاریخ :
1404/03/22
- ساعت :
06:32:00 PM
- بازدید :
125
- پاسخ :
0
|
تاریخ :
1404/04/12
- ساعت :
01:15:00 PM
- بازدید :
64
- پاسخ :
1
|
تاریخ :
1399/12/17
- ساعت :
02:47:00 PM
- بازدید :
8070
- پاسخ :
4
|
تاریخ :
1404/04/04
- ساعت :
02:25:00 PM
- بازدید :
62
- پاسخ :
1
|