Openxml , DocumentFormat.OpenXml kullanımı ,openxml excel okuma,openxml excel oluşturma,openxml excel yazdırma

Merhaba,

Bugünkü yazımda sizlere openxml kullanarak excel dosyasını okuma,excel dosyası yazma gibi operasyonel işlemler nasıl yapılır bahsedeceğim.

Öncelikle open xml’i ediniyoruz ,

https://www.nuget.org/packages/DocumentFormat.OpenXml

Veya visual studio Package Manager aracılığıyla ,

Install-Package DocumentFormat.OpenXml -Version 2.8.1

yazarak projemize dahil ediyoruz.

Senaryomuz şu şekilde olacak ,

Path tutan alanları olan excel dokümanının sütunlarını okuyacağız ,

sonrasında pathlerin bulunduğu directorylere bakıp dosyalar hakkında ne zaman oluşturulmuş ve boyutlarını analiz etmek maksadıyla

size bilgisini yeni bir excel doküman oluşturup yazacağız.

Winform c# ile projemizi oluşturalım.

Projeyi github hesabımdan;

https://github.com/oguzaltuntas/OpenXml projeyi edinebilirsiniz.
Exceli okuyalım ,

Basit bir form ve bir buton işimizi görecektir.

Buton click event’ine ,

aşağıdaki kod bloğunu yazalım.

oguz

private static void Initialize()
{

_emp = new List<Emp>();
List<string> data = new List<string>();
List<int> dataint = new List<int>();

var filePath = @”D:/oguz.xlsx”;

DataTable yenitable = new DataTable();
yenitable = ReadAsDataTable(filePath);

for (int i = 0; i<yenitable.Rows.Count; i++)

{
string tarih = null;
string uzunluk = null;
if (File.Exists((yenitable.Rows[i][“yol”].ToString())))
{
FileInfo filinfo = new FileInfo(yenitable.Rows[i][“yol”].ToString());
tarih = filinfo.LastWriteTime.ToString();
uzunluk = filinfo.Length.ToString();
uzunluk = string.Format(“{0:0.00} MB”, (Convert.ToInt64(uzunluk) / 1024f) / 1024f);

}
else
{

tarih = “Dosya Yok”;
uzunluk = “Dosya Yok”;
}

_entitydatamiz.Add(new Entitymiz()
{
Tip = yenitable.Rows[i][“Tip”].ToString(),
Dosya_Yolu = yenitable.Rows[i][“FullPath”].ToString(),
Branch = yenitable.Rows[i][“BranchId”].ToString(),
Katilim_Durumu = yenitable.Rows[i][“KE”].ToString(),
DosyaYoluPathli = yenitable.Rows[i][“yol”].ToString(),
Boyut = uzunluk,
Tarih = tarih

});

}

private void button2_Click(object sender, EventArgs e)
{

using (SpreadsheetDocument document = SpreadsheetDocument.Create(@”D:\OGZ.xlsx”, SpreadsheetDocumentType.Workbook))
{
WorkbookPart workbookPart = document.AddWorkbookPart();
workbookPart.Workbook = new Workbook();

WorksheetPart worksheetPart = workbookPart.AddNewPart<WorksheetPart>();
worksheetPart.Worksheet = new Worksheet();

Sheets sheets = workbookPart.Workbook.AppendChild(new Sheets());

Sheet sheet = new Sheet() { Id = workbookPart.GetIdOfPart(worksheetPart), SheetId = 1, Name = “Oğuz” };

sheets.Append(sheet);

workbookPart.Workbook.Save();

List<Emp> ornek= Employees.EmployeesList;

SheetData sheetData = worksheetPart.Worksheet.AppendChild(new SheetData());

Row row = new Row();

row.Append(
ConstructCell(“Tip”, CellValues.String),
ConstructCell(“Dosya_Yolu”, CellValues.String),
ConstructCell(“Branch”, CellValues.String),
ConstructCell(“Katilim_Durumu”, CellValues.String),
ConstructCell(“DosyaYoluPathli”, CellValues.String),
ConstructCell(“Boyut”, CellValues.String),
ConstructCell(“Tarih”, CellValues.String));

sheetData.AppendChild(row);
foreach (var employee in employees)
{
row = new Row();

row.Append(
ConstructCell(employee.Tip.ToString(), CellValues.String),
ConstructCell(employee.Dosya_Yolu, CellValues.String),
ConstructCell(employee.Branch.ToString(), CellValues.String),
ConstructCell(employee.Katilim_Durumu.ToString(), CellValues.String),
ConstructCell(employee.DosyaYoluPathli.ToString(), CellValues.String),
ConstructCell(employee.Boyut.ToString(), CellValues.String),
ConstructCell(employee.Tarih.ToString(), CellValues.String));

sheetData.AppendChild(row);
}

worksheetPart.Worksheet.Save();
MessageBox.Show(“İşlem Bitti”);
}

}
//}

private Cell ConstructCell(string value, CellValues dataType)
{
return new Cell()
{
CellValue = new CellValue(value),
DataType = new EnumValue<CellValues>(dataType)
};
}
}

Oğuz ALTUNTAŞ © 2018

Bunlarda ilgini çekebilir !