کد تبدیل دیتا گرید ویو فارسی به ورد Word در سی شارپ به همراه پروژه


دات وایت | DotWhite.ir
کد تبدیل دیتا گرید ویو فارسی به ورد Word در سی شارپ به همراه پروژه

در این پست از دات وایت آموزش به همراه کد تبدیل دیتا گرید ویو فارسی به آفیس وردWord را قرار داده ام. همینطور که شماها هم مشاهده کردین تو سایت های ایرانی کد کامل برای تبدیل دیتاگریدویو فارسی وجود نداره و اگر هم هس با هزینه زیاد عرضه میشه که باز نمیشه اعتماد کرد بعد از خرید آیا واقع کد کاملی در این زمینه می باشد یا نه برای همین خودم دست به کار شدم از یکی از سایت های معتبر خارجی کد کامل در این زمینه را برداشتم و برای زبان فارسی بهینش کردم که بدون هیچ مشکلی از جمله راست چین بودن متن ها بعد از تبدیل را نمایش دهد. از ویژگی های این کد  میتوان به عنواین زیر اشاره کرد:

توجه : کد و لینک دانلود پروژه در ادامه مطلب قرار داده شده است

1-راست چین بودن جدول برای نمایش درست زبان فارسی و امکان تغییر آن به چپ در صورت لزوم  برای زبان انگلیسی

کد راست چین کردن جدول

oDoc.Paragraphs.ReadingOrder= Word.WdReadingOrder.wdReadingOrderRtl

کد چپ چبن کردن جدول

oDoc.Paragraphs.ReadingOrder = Word.WdReadingOrder.wdReadingOrderLtr;


2-تراز بندی متن داخل جدول که من در حالت وسط قرار داده ام که شما برحسب نیاز میتوانید به راست یا چپ تغییر دهید

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

oRange.ParagraphFormat.Alignment = Word.WdParagraphAlignment.wdAlignParagraphCenter;

کد ترازبندی متن در سمت راست فیلد ها

oRange.ParagraphFormat.Alignment = Word.WdParagraphAlignment.wdAlignParagraphRight;

کد ترازبندی متن در سمت چپ فیلد ها

oRange.ParagraphFormat.Alignment = Word.WdParagraphAlignment.wdAlignParagraphLeft;


3-کد پیش نمایش فایل خروجی word قبل از ذخیره که میتواند برحسب نیاز فعال یا غیر فعال باشد

کد فعال سازی پیش نمایش

Word.Document oDoc = new Word.Document(); oDoc.Application.Visible = true;

کد غیر فعال سازی پیش نمایش

Word.Document oDoc = new Word.Document(); oDoc.Application.Visible = false;


4-تعیین عنوان جدول که میتواند خالی باشد:

headerRange.Text = "DotWhite.IR";


5-تعیین و تغییر شکل ظاهری جدول در word با استفاده از تغییر اعداد("Grid Table 4 - Accent 1") :

oDoc.Application.Selection.Tables[1].set_Style("Grid Table 4 - Accent 1");


6- و سایر ویژگی ها مانند تغییر نوع فونت و اندازه فونت و ترازبندی جداگانه عنوان جدول که نیاز به توضیح ندارد


برای ادامه آموزش به ادامه مطلب بروید

خروجی پروژه :


قبل از هر کاری باید رفرنس اکسل آفیس را به پروژه اضافه کنید برای این کار به ترتیب مراحل زیر را انجام دهید : 

توجه : پروژه در ویژوال استادیو2019 تست شده است و موقع نصب ویژوال افزونه آفیس نصب شده است.

1:برای افزودن Reference در Solution Explorer ، روی نام پروژه خود راست کلیک کرده و سپس بر روی Add Reference کلیک کنید. کادر Add Reference ظاهر می شود.

2:در این صفحه Microsoft.Office.Interop.Word را انتخاب کنید. اگر Reference را نمی بینید ، ممکن است Referenceهای آفیس نصب نشده باشند که باید این کار را بکنید.

3: روی تایید کلیک کنید





using های مورد نیاز:

using Word = Microsoft.Office.Interop.Word;
using Microsoft.Office.Interop;


کد متد اصلی 

public void Export_Data_To_Word(DataGridViewDGV, string filename)

{

    if (DGV.Rows.Count != 0)   

{

       int RowCount = DGV.Rows.Count;

        int ColumnCount = DGV.Columns.Count;

        Object[,] DataArray = new object[RowCount + 1, ColumnCount + 1];

        //add rows

        int r = 0;

        for (int c = 0; c<= ColumnCount - 1; c++)

        {

           

for (r = 0; r <= RowCount - 1; r++)

            {

                DataArray[r, c] =DGV.Rows[r].Cells[c].Value;

            } //end row loop

        } //end columnloop

        //کد نمایش فایل خروجی قبل از ذخیره آن

        Word.Document oDoc = new Word.Document();

        oDoc.Application.Visible = false;//True

        //page orintation

        oDoc.PageSetup.Orientation =Word.WdOrientation.wdOrientLandscape;

        //راست چین و چپ چین کردن جدول

        oDoc.Paragraphs.ReadingOrder = Word.WdReadingOrder.wdReadingOrderRtl;//LtR

        dynamic oRange =oDoc.Content.Application.Selection.Range;

        string oTemp = "";

        for (r = 0; r <= RowCount - 1; r++)

        {

            for (int c = 0; c<= ColumnCount - 1; c++)

            {

                oTemp = oTemp + DataArray[r, c]+ "t";

            }

        }


        //table format

        oRange.Text = oTemp;

        object Separator = Word.WdTableFieldSeparator.wdSeparateByTabs;

        object ApplyBorders = true;

        object AutoFit = true;

        object AutoFitBehavior = Word.WdAutoFitBehavior.wdAutoFitContent;

        oRange.ConvertToTable(ref Separator, ref RowCount, ref ColumnCount,Type.Missing,Type.Missing, ref ApplyBorders,Type.Missing,Type.Missing, Type.Missing,Type.Missing,Type.Missing, Type.Missing,Type.Missing, ref AutoFit, ref AutoFitBehavior, Type.Missing);

        oRange.Select();       

oDoc.Application.Selection.Tables[1].Select();       

oDoc.Application.Selection.Tables[1].Rows.AllowBreakAcrossPages = 0;

        oDoc.Application.Selection.Tables[1].Rows.Alignment= 0;       

oDoc.Application.Selection.Tables[1].Rows[1].Select();      

oDoc.Application.Selection.InsertRowsAbove(1);   

oDoc.Application.Selection.Tables[1].Rows[1].Select();

        oDoc.Application.Selection.Cells.VerticalAlignment= Word.WdCellVerticalAlignment.wdCellAlignVerticalCenter;

        //header row style

oDoc.Application.Selection.Tables[1].Rows[1].Range.Bold = 1;    

oDoc.Application.Selection.Tables[1].Rows[1].Range.Font.Name = "Tahoma";

     oDoc.Application.Selection.Tables[1].Rows[1].Range.Font.Size= 14;


        //ترازبندی متن داخل فیلد های جدول

        oRange.ParagraphFormat.Alignment =Word.WdParagraphAlignment.wdAlignParagraphCenter;

        //add header row manually

        for (int c = 0; c<= ColumnCount - 1; c++)

        {

        oDoc.Sections.PageSetup.SectionDirection= Word.WdSectionDirection.wdSectionDirectionRtl;           

oDoc.Application.Selection.Tables[1].Cell(1, c+1).Range.Text =DGV.Columns[c].HeaderText;           

        }

        //table style

     oDoc.Application.Selection.Tables[1].set_Style("Grid Table 4 - Accent 1");     

oDoc.Application.Selection.Tables[1].Rows[1].Select();


        //header text

        foreach (Word.Section section in oDoc.Application.ActiveDocument.Sections)

        {                  

            Word.Range headerRange =section.Headers[Word.WdHeaderFooterIndex.wdHeaderFooterPrimary].Range;

            headerRange.Fields.Add(headerRange,Word.WdFieldType.wdFieldPage);

            headerRange.Text = "DotWhite.IR";//عنوان جدول

            headerRange.Font.Size = 16;

            //headerRange.Sections.PageSetup.SectionDirection= Word.WdSectionDirection.wdSectionDirectionRtl;           

headerRange.ParagraphFormat.Alignment =Word.WdParagraphAlignment.wdAlignParagraphCenter;

            //headerRange.ParagraphFormat.Alignment= Word.WdSectionDirection.wdSectionDirectionRtl;

            //save the file

            oDoc.SaveAs2(filename);

            //NASSIM LOUCHANI

        } 

}

}




کد داخل دکمه (Button): 

private void button1_Click(object sender, EventArgs e)

        {

            SaveFileDialog sfd = new SaveFileDialog();

            sfd.Filter = "Word Documents (*.docx)|*.docx";

            sfd.FileName = "DotWhite.IR.docx";

            if (sfd.ShowDialog() == DialogResult.OK)

            {               

Export_Data_To_Word(dataGridView1, sfd.FileName);

            }

        }

هزینه استفاده از مطلب : تشکر در نظرات جهت روحیه دادن به ادمین

دانلود پروژه تبدیل دیتاگرید ویو به ورد Word :

لینک دانلود مستقیم | لینک دانلود غیر مستقیم

حجم فایل : 80 کیلو بایت

ویژوال استدیو 2019

رمز فایل : dotwhite.ir

منبع : دات وایت | DotWhite.IR



تاریخ انتشار : پنجشنبه 06 شهريور 1399 ساعت: 11:53 | نظرات()
برچسب ها : , , , , , , , , , , , , , , , , , , , ,

نویسنده :

بازديد : 128

موضوع: سی شارپ , کد های مفید , پروژه ها , اس کیو لایت | SQLite ,

بخش نظرات این مطلب
نام
ایمیل (منتشر نمی‌شود) (لازم)
وبسایت
:) :( ;) :D ;)) :X :? :P :* =(( :O @};- :B /:) :S
نظر خصوصی
مشخصات شما ذخیره شود ؟ [حذف مشخصات] [شکلک ها]
کد امنیتیرفرش کد امنیتی