KMRT BSRN

"Hiç kimsenin ilgisine ihtiyaç duymadığın gün olgunlaşırsın. Hiç kimseden beklentiye girmediğin gün yara almazsın. Ve hiç kimseye bağımlı kalmazsan kazanırsın." OSHO

C# – DataTable’dan WordML (WORD Dosya) oluşturma — Creating WordML From DataTable

Yorum bırakın


Proje dosyası içindeki “WordHelper.dll” isimli DLL’i projelerinize referans ederek projelerinizdeki DataTable’ları kolayca WORD’a aktarabilirsiniz.. 🙂

Ayrıca proje kodlarınıda aşağıda veriyorum.
Fakat Resource dosyalarını projenize eklemeyi unutmayın !! 🙂

Projeyi indir !

WordML.cs


using System;

using System.Collections.Generic;

using System.Linq;

using System.Text;

using System.Data;

using System.Windows.Forms;

namespace WordHelper

{

public class WordML

{

public string GetFromDataTable(System.Data.DataTable dt)

{

string template = WordHelper.Properties.Resources.WordMLTemplate;

string table = WordHelper.Properties.Resources.WordML_Table;

string tableColumn = WordHelper.Properties.Resources.WordML_TableColumn;

string tableColumnRow = WordHelper.Properties.Resources.WordML_TableColumnRow;

string tableRow = WordHelper.Properties.Resources.WordML_Row;

string tableRowColumn = WordHelper.Properties.Resources.WordML_TableRowColumn;

StringBuilder strBuilderColumns = new StringBuilder(string.Empty);

StringBuilder strBuilderColumnsRow = new StringBuilder(string.Empty);

foreach (DataColumn dc in dt.Columns)

{

strBuilderColumns.Append(tableColumn); //Kolonlar listelenir..

strBuilderColumns.Append(Environment.NewLine);

strBuilderColumnsRow.Append(

tableColumnRow.Replace(

"{[@TABLE_COLUMN_VALUE]}", dc.ColumnName));

strBuilderColumnsRow.Append(Environment.NewLine);

}

//Kolon satırı eklenir..

StringBuilder strBuilderRows = new StringBuilder(string.Empty);

strBuilderRows.Append(

tableRow.Replace(

"{[@TABLE_ROW_COLUMN]}", strBuilderColumnsRow.ToString()));

strBuilderRows.Append(Environment.NewLine);

foreach (DataRow dr in dt.Rows)

{

StringBuilder strBuilderRowValues = new StringBuilder(string.Empty);

foreach (DataColumn dc in dt.Columns)

{

strBuilderRowValues.Append(

tableRowColumn.Replace(

"{[@TABLE_ROW_VALUE]}", dr[dc].ToString()));

strBuilderRowValues.Append(Environment.NewLine);

}

strBuilderRows.Append(

tableRow.Replace(

"{[@TABLE_ROW_COLUMN]}", strBuilderRowValues.ToString()));

strBuilderRows.Append(Environment.NewLine);

}

table =

table

.Replace("{[@TABLE_COLUMNS]}", strBuilderColumns.ToString())

.Replace("{[@TABLE_ROWS]}", strBuilderRows.ToString());

template = template.Replace("{[@TABLE]}", table);

//Disposing..

strBuilderColumns = null;

strBuilderColumnsRow = null;

strBuilderRows = null;

return template;

}

public string Save(string wordML)

{

string result = string.Empty;

SaveFileDialog sfd = new SaveFileDialog();

sfd.Title = "Save Word Document";

sfd.Filter = "WORD Document(*.doc)*.doc";

sfd.DefaultExt = "MyFile.doc";

sfd.InitialDirectory = Environment.GetFolderPath(Environment.SpecialFolder.Desktop);

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

{

System.IO.File.WriteAllText(sfd.FileName, wordML);

result = sfd.FileName;

}

return result;

}

}

}


Resource Dosya içerikleri..

WordML_Row.txt


{[@TABLE_ROW_COLUMN]}


wordml_table.txt


{[@TABLE_COLUMNS]}

{[@TABLE_ROWS]}


WordML_TableColumn.txt



WordML_TableColumnRow.txt


{[@TABLE_COLUMN_VALUE]}


WordML_TableRowColumn.txt


{[@TABLE_ROW_VALUE]}


WordMLTemplate.txt


TitleAuthorLast Author202009-12-22T19:55:00Z2009-12-22T19:55:00Z1852Company115912

 

    {[@TABLE]}

 


Reklamlar

Yazar: K. Murat BAŞEREN, MBA, MCP

I am a senior software developer, MCP, consultant, blogger, former chemist and software trainer. My interests range from software developer to technology. I am also interested in web development, education, and coffee.

Bir Cevap Yazın

Aşağıya bilgilerinizi girin veya oturum açmak için bir simgeye tıklayın:

WordPress.com Logosu

WordPress.com hesabınızı kullanarak yorum yapıyorsunuz. Çıkış  Yap / Değiştir )

Twitter resmi

Twitter hesabınızı kullanarak yorum yapıyorsunuz. Çıkış  Yap / Değiştir )

Facebook fotoğrafı

Facebook hesabınızı kullanarak yorum yapıyorsunuz. Çıkış  Yap / Değiştir )

Google+ fotoğrafı

Google+ hesabınızı kullanarak yorum yapıyorsunuz. Çıkış  Yap / Değiştir )

Connecting to %s