简体   繁体   中英

NPOI - embed the part of excel file in the email C#

I want to send an email using SMTP with embedded excel data.

I bring the external data using datatable, and make an excel file using part of the datatable. And I want to embed just the 4 rows of the excel file. How can I change the sheet1 to html to embed in the email?

    private void Email()
    {
        //get the data from database
        DataTable data = GetData();

        IWorkbook workbook;
        workbook = new HSSFWorkbook();

        ISheet sheet1 = workbook.CreateSheet("Sheet 1");


        ....
      }

Your question is not very specific, but I think I understand...

int startingRow = 0; // Row 1 in Excel is Row 0 in NPOI
int endingRow = 4;
StringBuilder builder = new StringBuilder();

builder.Append("<table>");

for (int r = startingRow; r < endingRow; r++)
{   
    // Check if current row is null
    if (sheet1.GetRow(r) != null)
    {
        builder.Append("<tr>");

        // Get the current row
        IRow row = sheet1.GetRow(r);        

        // Loop through each cell in the row
        for (int c = 0; c < row.LastCellNum; c++)
        {
            builder.Append("<td>");

            // Check if current cell is null
            if (row.GetCell(c) != null)
            {                   
                // Get cell value
                ICell cell = row.GetCell(c);

                // Append cell value between HTML table cells
                builder.Append(cell.ToString());
            }

            builder.Append("</td>");            
        }

        builder.Append("</tr>");
    }
}

builder.Append("</table>");

// insert builder.ToString(); in your e-mail

The technical post webpages of this site follow the CC BY-SA 4.0 protocol. If you need to reprint, please indicate the site URL or the original address.Any question please contact:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM