Как добавить комментарий ячейки, используя NPOI Excel в C #?

Я хочу создать комментарий ячейки iusing NPOI Excel в C #. Я не нашел четкого документа об этом. Я написал что-то сам, как показано ниже.

NPOI.HSSF.Record.NoteRecord nr = new NPOI.HSSF.Record.NoteRecord(); nr.Author = "Some Author"; NPOI.HSSF.Record.TextObjectRecord tor = new NPOI.HSSF.Record.TextObjectRecord(); tor.Str = new HSSFRichTextString("something"); HSSFComment cm = new HSSFComment(nr, tor); cm.Visible = true; sheet.GetRow(i).Cells[k + 8].CellComment = cm; 

Этот код работает некорректно. Я не вижу никакого комментария к этой ячейке в сгенерированном файле excel. Кто-нибудь знает, как добавить комментарий в конкретную ячейку?

Чтобы создать комментарий ячейки, вам нужно использовать патриарха чертежа. Затем вы можете определить своего автора и текст. Вы также можете применить некоторую настройку шрифта.

Попробуйте этот код, я прокомментировал различные шаги:

 HSSFWorkbook workbook = new HSSFWorkbook(); HSSFSheet sheet = (HSSFSheet)workbook.CreateSheet("Sheet1"); HSSFRow row = (HSSFRow)sheet.CreateRow(0); HSSFCell cell = (HSSFCell)row.CreateCell(0); cell.SetCellValue("Cell1"); // Create the drawing patriarch (top level container for all shapes including cell comments) IDrawing patriarch = (HSSFPatriarch)sheet.CreateDrawingPatriarch(); // Client anchor defines size and position of the comment in the worksheet IComment comment = patriarch.CreateCellComment(new HSSFClientAnchor(0, 0, 0, 0, 2, 1, 4, 4)); // Set comment author comment.Author = "Author"; // Set text in the comment comment.String = new HSSFRichTextString($"{comment.Author}:{Environment.NewLine}A comment"); // If you want the author displayed in bold on top like in Excel // The author will be displayed in the status bar when on mouse over the commented cell IFont font = workbook.CreateFont(); font.Boldweight = (short)FontBoldWeight.Bold; comment.String.ApplyFont(0, comment.Author.Length, font); // Set comment visible comment.Visible = true; // Assign comment to a cell cell.CellComment = comment; using (MemoryStream exportData = new MemoryStream()) { workbook.Write(exportData); Response.ContentEncoding = Encoding.UTF8; Response.Charset = Encoding.UTF8.EncodingName; Response.ContentType = "application/vnd.ms-excel"; Response.AddHeader("content-disposition", $"attachment; filename=test.xls"); Response.Clear(); Response.BinaryWrite(exportData.GetBuffer()); Response.End(); } 

Рекомендации:

  • Примеры NPOI HSSF – Комментарии к ячейке
  • Запись NPOI в XLS, но не XLSX
  • Редактирование и сохранение xlsx с NPOI приводит к повреждению файла
  • Инструмент C # NPOI Excel не удаляет строку?
  • Поддерживает ли NPOI формат .xlsx?
  • C #, конвертировать Npoi.ICell в двойной тип
  • C #. Импорт ячейки xlsx в DataTable с помощью NPOI 2.0
  • NPOI / POI Excel Lib ISheet.ShiftRows Index Вне диапазона Исключение
  • Чтение формата ячейки Excel
  • Чтение региональных дат из Excel с помощью NPOI
  • Порт C # Apache POI повреждает встроенные OLE-объекты в .xlsx
  • NPOI - после сохранения в файл развращает .xlsx workbook
  • Давайте будем гением компьютера.