2017-02-17 4 views
0

У меня есть datagridview, который содержит детали счета. А также ярлык, который содержит общую сумму. Я хочу добавить значения datagridview для excel и total из метки в конце значений datagridview в excel.Экспорт datagridview и метки vaue в excel

здесь im используя функцию для экспорта datagridview для Excel. и вызывая его в событии клика.

 private void ToCsV(DataGridView dGV, string filename) 
    { 
     string stOutput = ""; 
     // Export titles: 
     string sHeaders = ""; 

     for (int j = 0; j < dGV.Columns.Count; j++) 
      sHeaders = sHeaders.ToString() + Convert.ToString(dGV.Columns[j].HeaderText) + "\t"; 
     stOutput += sHeaders + "\r\n"; 
     // Export data. 
     for (int i = 0; i < dGV.RowCount - 1; i++) 
     { 
      string stLine = ""; 
      for (int j = 0; j < dGV.Rows[i].Cells.Count; j++) 
       stLine = stLine.ToString() + Convert.ToString(dGV.Rows[i].Cells[j].Value) + "\t"; 
      stOutput += stLine + "\r\n"; 
     } 
     Encoding utf16 = Encoding.GetEncoding(1254); 
     byte[] output = utf16.GetBytes(stOutput); 
     FileStream fs = new FileStream(filename, FileMode.Create); 
     BinaryWriter bw = new BinaryWriter(fs); 
     bw.Write(output, 0, output.Length); //write the encoded file 
     bw.Flush(); 
     bw.Close(); 
     fs.Close(); 
    } 

Теперь я хочу добавить значение метки, которое является итоговым до конца данных Excel. Я видел примеры добавления значений меток. Но моя проблема заключается в том, что я хочу добавить его в конце данных в excel. Таким образом, это можно назвать общим. Как я могу это сделать. Я застрял с ним. Кто-нибудь может мне помочь?

+0

Hmm ... 'stOutput + = myLabel.Text +" \ r \ n ";' как только вы выйдете из цикла, сделайте текст ярлыков последней строкой? – JohnG

ответ

0

Учитывая, что ваш datagridview заселен от DataTable. Вы можете использовать библиотеку EPPlus, которая является open source. Загрузите его из Интернета и обратитесь в свое приложение. Вот код.

Response.Clear(); 
Response.ContentType = "application/vnd.openxmlformats-officedocument.spreadsheetml.sheet"; 
Response.AddHeader("content-disposition", "attachment;filename=" + HttpUtility.UrlEncode("Logs.xlsx", System.Text.Encoding.UTF8)); 

using (ExcelPackage pck = new ExcelPackage()) 
{ 
ExcelWorksheet ws = pck.Workbook.Worksheets.Add("Logs"); 
ws.Cells["A1"].LoadFromDataTable(dt, true);  

//Here you can add your Label value to whatever cells you want..for example- A1 or something 

var ms = new System.IO.MemoryStream(); 
pck.SaveAs(ms); 
ms.WriteTo(Response.OutputStream);       
} 
Смежные вопросы