در محیط سی شارپ می توانید با مایکروسافت اکسل ارتباط برقرار کرده، با دستورات برنامه نویسی، فایل اکسل ایجاد کنید و یک برگه ایجاد کنید، محتوای برگه را بخوانید ، به سلول های آن دسترسی پیدا کنید. سلول ها را قالب بندی کنید . در این مقاله، نگاهی دقیق تر به دستکاری سلول های اکسل از برنامه سی شارپ خواهیم داشت.

قطعه کدهای زیر با استفاده از کتابخانه  اشیای مایکروسافت اکسل ۱۲٫۰ که در بخش های  قبلی  (چگونه فایل اکسل را از CSharp ایجاد کنید؟) روش استفاده از این کتابخانه را آموزش دادیم سلول های فایل اکسل را قالب بندی می کنند.

فرمت دادن ستون(یا سلول)  اکسل

فرمت اکسل سلول ها برای ذخیره مقادیر به عنوان متن

فرمت دهی سلول های اکسل به فرمت متنی، هنگامی که داده ها را از دیگر منابع داده به اکسل منتقل می کنید،لازم می شود.

Excel.Range formatRange;
formatRange = xlWorkSheet.get_Range("a1", "b1");
formatRange.NumberFormat = "@";
xlWorkSheet.Cells[1, 1] = "098";

فرمت دادن سلول ها بصورت عددی

Excel.Range formatRange;
formatRange = xlWorkSheet.get_Range("a1", "b1");
formatRange.NumberFormat = "#,###,###";
xlWorkSheet.Cells[1, 1] = "1234567890";

فرمت دادن سلول های اکسل بصورت پولی

Excel.Range formatRange;
formatRange = xlWorkSheet.get_Range("a1", "b1");
formatRange.NumberFormat = "$ #,###,###.00";
xlWorkSheet.Cells[1, 1] = "1234567890";

فرمت دادن سلول های اکسل بصورت تاریخ

Excel.Range formatRange;
formatRange = xlWorkSheet.get_Range("a1", "b1");
formatRange.NumberFormat = "mm/dd/yyyy";
//formatRange.NumberFormat = "mm/dd/yyyy hh:mm:ss";
xlWorkSheet.Cells[1, 1] = "31/5/2014";

بولد کردن متن سطرها یا سلول های اکسل

بولد کردن کل سطر

Excel.Range formatRange;
formatRange = xlWorkSheet.get_Range("a1");
formatRange.EntireRow.Font.Bold = true;
xlWorkSheet.Cells[1, 5] = "Bold";

بولد کردن یک سلول

workSheet.Cells[2, 1].Font.Bold = true;

تعیین کادر برای سلول های اکسل

اضافه کردن کادر به سلول خاصی از اکسل

Excel.Range formatRange = xlWorkSheet.UsedRange;
Excel.Range cell = formatRange.Cells[3, 3];
Excel.Borders border = cell.Borders;
border.LineStyle = Excel.XlLineStyle.xlContinuous;
border.Weight = 2d;

اضافه کردن کادر دور یک مجموعه از سلول های اکسل

Excel.Range formatRange;
formatRange = xlWorkSheet.get_Range("b2", "e9");
formatRange.BorderAround(Excel.XlLineStyle.xlContinuous,
Excel.XlBorderWeight.xlMedium, Excel.XlColorIndex.xlColorIndexAutomatic,
Excel.XlColorIndex.xlColorIndexAutomatic);

تعیین رنگ سلول های اکسل

تعیین رنگ پس زمینه سلول ها

Excel.Range formatRange;
formatRange = xlWorkSheet.get_Range("b1", "b1");
formatRange.Interior.Color = System.Drawing.
ColorTranslator.ToOle(System.Drawing.Color.Red);
xlWorkSheet.Cells[1, 2] = "Red";

تعیین رنگ و اندازه متن سلول های اکسل

Excel.Range formatRange;
formatRange = xlWorkSheet.get_Range("b1", "b1");
formatRange.Font.Color = System.Drawing.ColorTranslator.ToOle(System.Drawing.Color.Red);
formatRange.Font.Size = 10;
xlWorkSheet.Cells[1, 2] = "Red";

روش ادغام کردن سلول ها در اکسل

xlWorkSheet.get_Range("b2", "e3").Merge(false);

اضافه کردن هدر با فایل اکسل

xlWorkSheet.get_Range("b2", "e3").Merge(false);
chartRange = xlWorkSheet.get_Range("b2", "e3");
chartRange.FormulaR1C1 = "Your Heading Here";
chartRange.HorizontalAlignment = 3;
chartRange.VerticalAlignment = 3;

در ادامه یک برنامه کامل سی شارپ برای قالب بندی سلول های اکسل را می بینید .

برنامه زیر یک لیست در فایل اکسل ایجاد کرده و سلول ها را قالب بندی می کند. ابتدا سلول اکسل را می سازیم و عنوان را ایجاد می کنیم، سپس نام دانش آموزان و مجموع آنها به عنوان BOLD می شود.و در نهایت برای بخش کل لیست اضافه می کنیم.

 

فرمت دادن سلول های اکسل در سی شارپ

 

using System;
using System.Windows.Forms;
using Excel = Microsoft.Office.Interop.Excel;
namespace WindowsFormsApplication1
{
public partial class Form1 : Form
{
public Form1()
{
InitializeComponent();
}
private void button1_Click(object sender, EventArgs e)
{
Excel.Application xlApp;
Excel.Workbook xlWorkBook;
Excel.Worksheet xlWorkSheet;
object misValue = System.Reflection.Missing.Value;
//....
Excel.Range chartRange;
xlApp = new Excel.Application();
xlWorkBook = xlApp.Workbooks.Add(misValue);
xlWorkSheet = (Excel.Worksheet)xlWorkBook.Worksheets.get_Item(1);
//....
//add data
xlWorkSheet.Cells[4, 2] = "";
xlWorkSheet.Cells[4, 3] = "Student1";
xlWorkSheet.Cells[4, 4] = "Student2";
xlWorkSheet.Cells[4, 5] = "Student3";
//....
xlWorkSheet.Cells[5, 2] = "Term1";
xlWorkSheet.Cells[5, 3] = "80";
xlWorkSheet.Cells[5, 4] = "65";
xlWorkSheet.Cells[5, 5] = "45";
//....
xlWorkSheet.Cells[6, 2] = "Term2";
xlWorkSheet.Cells[6, 3] = "78";
xlWorkSheet.Cells[6, 4] = "72";
xlWorkSheet.Cells[6, 5] = "60";
//....
xlWorkSheet.Cells[7, 2] = "Term3";
xlWorkSheet.Cells[7, 3] = "82";
xlWorkSheet.Cells[7, 4] = "80";
xlWorkSheet.Cells[7, 5] = "65";
//....
xlWorkSheet.Cells[8, 2] = "Term4";
xlWorkSheet.Cells[8, 3] = "75";
xlWorkSheet.Cells[8, 4] = "82";
xlWorkSheet.Cells[8, 5] = "68";
//....
xlWorkSheet.Cells[9, 2] = "Total";
xlWorkSheet.Cells[9, 3] = "315";
xlWorkSheet.Cells[9, 4] = "299";
xlWorkSheet.Cells[9, 5] = "238";
//....
xlWorkSheet.get_Range("b2", "e3").Merge(false);
//....
chartRange = xlWorkSheet.get_Range("b2", "e3");
chartRange.FormulaR1C1 = "MARK LIST";
chartRange.HorizontalAlignment = 3;
chartRange.VerticalAlignment = 3;
chartRange.Interior.Color = System.Drawing.ColorTranslator.ToOle(System.Drawing.Color.Yellow );
chartRange.Font.Color = System.Drawing.ColorTranslator.ToOle(System.Drawing.Color.Red);
chartRange.Font.Size = 20;
//....
chartRange = xlWorkSheet.get_Range("b4", "e4");
chartRange.Font.Bold = true;
chartRange = xlWorkSheet.get_Range("b9", "e9");
chartRange.Font.Bold = true;
//....
chartRange = xlWorkSheet.get_Range("b2", "e9");
chartRange.BorderAround(Excel.XlLineStyle.xlContinuous, Excel.XlBorderWeight.xlMedium, Excel.XlColorIndex.xlColorIndexAutomatic, Excel.XlColorIndex.xlColorIndexAutomatic);
//....
xlWorkBook.SaveAs("d:\\csharp.net-informations.xls", Excel.XlFileFormat.xlWorkbookNormal, misValue, misValue, misValue, misValue, Excel.XlSaveAsAccessMode.xlExclusive, misValue, misValue, misValue, misValue, misValue);
xlWorkBook.Close(true, misValue, misValue);
xlApp.Quit();
//....
releaseObject(xlApp);
releaseObject(xlWorkBook);
releaseObject(xlWorkSheet);
//....
MessageBox.Show("File created !");
}
//....
private void releaseObject(object obj)
{
try
{
System.Runtime.InteropServices.Marshal.ReleaseComObject(obj);
obj = null;
}
catch (Exception ex)
{
obj = null;
MessageBox.Show("Unable to release the Object " + ex.ToString());
}
finally
{
GC.Collect();
}
}
}
}

نمایش قابل چاپ