Asp.Net Excel'e Aktarma Sorunu
-
Merhaba arkadaşlar, bir tane GridView bulunmakta. içerisinde veriler var ve ben bunu excele aktarmak istiyorum. Aslında oldu fakat istenilen bir şey daha var.
Excel çıktısının en tepesinde
"Firma Logosu", "Rapor İsmi" yazdırmam gerekiyor. Header felan ekleyip resim urlsini göstermeme rağmen Excel'de çıkmadığı gibi verilerin sol tarafında gösteriyor.

"Logo" ve "Telefoncular Listesi" şeklinde belirtilenlerin gelmesini istiyorum. Şimdiden teşekkürler.
-
.net bilmiyorum ama https://msdn.microsoft.com/en-us/vba/excel-vba/articles/shapes-addpicture-method-excel burada ki LinkToFile parametresini false gönderirsen resim dosyan exele gömülür diğer türlü resimler de excel dosyanla beraber taşınmak zorunda kalır.
-
Ben bu tarz excel'e aktar ma veya excelden c# aktarma noktasinda EPPLUS dll sini kullanıyorum. bir incele istersen image tipi text format gibi seyleri mecut ve load datatable gibi bir komutu daha var yeni versionu da cok hizli
-
Burada resim ile ilgili bir dalga dümenler var istersen hocam :
https://forums.asp.net/t/2071710.aspx?Export+Images+From+A+Directory+To+Excel+Using+EPplus
Benim kendi rapor exporum için kullandığım fonksiyonum :
[code]public ActionResult Export_DsToExcel(DataSet ds, string FileName, string[] Names = null)
{ string dosyaAdi = string.Format("{1}_{0:ddMMyyyy_hhmmss_fffff}.xlsx", DateTime.Now, FileName); string fullFile = Path.Combine(System.Web.HttpContext.Current.Server.MapPath(@"~/Exports"), dosyaAdi); var newFile = new FileInfo(fullFile); if (newFile.Exists) { newFile.Delete(); } using (var package = new ExcelPackage(newFile)) { for (int i = 0; i < ds.Tables.Count; i++) { string shName = ds.Tables[i].TableName; try { if (Names != null && Names.Length > i) shName = Names[i]; } catch { } ExcelWorksheet worksheet = package.Workbook.Worksheets.Add(shName); worksheet.Cells["A1"].LoadFromDataTable(ds.Tables[i], true, TableStyles.Dark9); //EPPLUS'in bir bug'i ile ilgili bu aşağıdaki döngü eklendi. if (ds.Tables[i].Rows.Count == 0) { for (int a = 0; a < ds.Tables[i].Columns.Count; a++) { worksheet.Cells[1, a + 1].Value = ds.Tables[i].Columns[a].ColumnName; } } for (int a = 0; a < ds.Tables[i].Columns.Count; a++) { if (ds.Tables[i].Columns[a].ColumnName.ToLower().IndexOf("tarih") >= 0 || ds.Tables[i].Columns[a].ColumnName.ToLower().IndexOf("tarıh") >= 0 || ds.Tables[i].Columns[a].ColumnName.ToLower().IndexOf("date") >= 0) { try { worksheet.Cells[2, a + 1, ds.Tables[i].Rows.Count + 1, a + 1].Style.Numberformat.Format = "dd/MM/yyyy HH:mm:ss"; } catch (Exception) { } } } worksheet.Cells[worksheet.Dimension.Address].AutoFitColumns(); } package.Workbook.Properties.Title = "Dokum Rapor - " + FileName; package.Workbook.Properties.Author = "YPay"; package.Save(); } return Redirect(string.Format("/Exports/{0}", dosyaAdi));
}[/code]
