PDA

View Full Version : سوال: تغییر در فیلدهای یک ستون در Excel توسط برنامه



pishraft
چهارشنبه 19 مهر 1391, 09:50 صبح
سلام دوستان
من یه فایل Excel دارم
می خوام یه ستون رو آپ دیت کنم
مثلا اگه طول حروف کمتر از 5 بود به آخرشون یه حرف S اضافه کنه و اگه بیشتر از 8 بود حرف 4 کلمه حذف شه
راهی وجود داره؟
ممنون میشم راهنمایی کنید

مسعود اقدسی فام
چهارشنبه 19 مهر 1391, 11:41 صبح
اگه منظورتون روش ارتباط با فایل اکسل هستش، از کمپوننت‌های موجود برای کار با این فایلا استفاده کنید. مثلا Aspose

اگه الگوریتم انجام این عملیات منظورتونه بگید از چه روشی برای ارتباط استفاده می‌کنید که بشه نظر داد.

pishraft
چهارشنبه 19 مهر 1391, 14:41 عصر
من تا حالا با اکسل کار نکردم میخوام یه ستون رو تغیرر بدم ولی تعداد رکوردهاش زیاده
میخوام یه کد بنویسم که فیلد به فیلد پایین بره و اگه شروط من رو داشت تغییرات رو انجام بده

مهرداد صفا
پنج شنبه 20 مهر 1391, 00:09 صبح
سلام
اگر microsoft office در سیستم نصب شده؛ Microsoft.Office.Interop.Excel را به reference پروژه اضافه کنید.
یک Application جدید تعریف کنید و از طریق آن Workbook را باز کنید.
از طریق خصوصیت Workbook.Sheets مربوط به Workbook باز شده که میتواند مقدار برگشتی Workbooks.Open یا Application.Workbooks[1] باشد میتوانید به Sheet ها دسترسی داشته باشید. هر عضو از این مجوعه که یک Sheet است به صورت یک Range در دسترس است و شما میتوانید به Column ها و Row ها و Cell های آن دسترسی داشته باشید و مقدار آنها را خوانده و بازنویسی کنید.
دقت کنید که در excel هر sheet, column, row, cell به صورت یک range است و اینکه تمام مجموعه ها از 1 شروع میشوند. مثلا برای اضافه کردن حرف s به آخر سلولهایی که کمتر از 4 کاراکتر دارند شبیه به این عمل کنید:

using Microsoft.Office.Interop.Excel;
//...
void ReplaceExcel()
{
Microsoft.Office.Interop.Excel.Application excel = new Microsoft.Office.Interop.Excel.Application();
Workbook MyWorkBook = excel.Workbooks.Open(@"e:\temp\gas.xls"); //file name to open it. use your own file


try{
//search in 4th column
foreach (Range cell in MyWorkBook.Sheets[1].Columns[4].Cells)
{
if (cell.Value.ToString().Length < 4)
{
cell.Value = cell.Value.ToString() + "S";
}
}
}
catch{
System.Media.SystemSounds.Beep.Play();
}
finally
{
MyWorkBook.Close();
}
}

اگر مشکلی بود مطرح کنید.