Npoi复制行
private void CopyRange(HSSFWorkbook myHSSFWorkBook, int fromRowIndex, int fromColIndex, int toRowIndex, int toColIndex, bool onlyData, bool copyComment)
{
HSSFRow sourceRow = myHSSFWorkBook.GetSheetAt(myHSSFWorkBook.ActiveSheetIndex).GetRow(fromRowIndex);
HSSFCell sourceCell = sourceRow.GetCell(fromColIndex);
if (sourceRow != null && sourceCell != null)
{
HSSFRow changingRow = null;
HSSFCell changingCell = null;
changingRow = myHSSFWorkBook.GetSheetAt(myHSSFWorkBook.ActiveSheetIndex).GetRow(toRowIndex);
if (changingRow == null)
changingRow = myHSSFWorkBook.GetSheetAt(myHSSFWorkBook.ActiveSheetIndex).CreateRow(toRowIndex);
changingCell = changingRow.GetCell(toColIndex);
if (changingCell == null)
changingCell = changingRow.CreateCell(toColIndex);
if (onlyData)//仅数据
{
//对单元格的值赋值
changingCell.SetCellValue(sourceCell.StringCellValue);
}
else //非仅数据
{
//单元格的编码
changingCell.Encoding = sourceCell.Encoding;
//单元格的格式
changingCell.CellStyle = sourceCell.CellStyle;
//单元格的公式
if (sourceCell.CellFormula == "")
changingCell.SetCellValue(sourceCell.StringCellValue);
else
changingCell.SetCellFormula(sourceCell.CellFormula);
//对单元格的批注赋值
if (copyComment)
{
if (sourceCell.CellComment != null)
{
HSSFPatriarch patr = myHSSFWorkBook.GetSheetAt(myHSSFWorkBook.ActiveSheetIndex).CreateDrawingPatriarch();
HSSFComment comment = patr.CreateComment(new HSSFClientAnchor(0, 0, 0, 0, toColIndex, toRowIndex, toColIndex + 1, toRowIndex + 1));
comment.String = new HSSFRichTextString(sourceCell.CellComment.String.ToString());
comment.Author = sourceCell.CellComment.Author;
changingCell.CellComment = comment;
}
}
}
}
}
{
HSSFRow sourceRow = myHSSFWorkBook.GetSheetAt(myHSSFWorkBook.ActiveSheetIndex).GetRow(fromRowIndex);
HSSFCell sourceCell = sourceRow.GetCell(fromColIndex);
if (sourceRow != null && sourceCell != null)
{
HSSFRow changingRow = null;
HSSFCell changingCell = null;
changingRow = myHSSFWorkBook.GetSheetAt(myHSSFWorkBook.ActiveSheetIndex).GetRow(toRowIndex);
if (changingRow == null)
changingRow = myHSSFWorkBook.GetSheetAt(myHSSFWorkBook.ActiveSheetIndex).CreateRow(toRowIndex);
changingCell = changingRow.GetCell(toColIndex);
if (changingCell == null)
changingCell = changingRow.CreateCell(toColIndex);
if (onlyData)//仅数据
{
//对单元格的值赋值
changingCell.SetCellValue(sourceCell.StringCellValue);
}
else //非仅数据
{
//单元格的编码
changingCell.Encoding = sourceCell.Encoding;
//单元格的格式
changingCell.CellStyle = sourceCell.CellStyle;
//单元格的公式
if (sourceCell.CellFormula == "")
changingCell.SetCellValue(sourceCell.StringCellValue);
else
changingCell.SetCellFormula(sourceCell.CellFormula);
//对单元格的批注赋值
if (copyComment)
{
if (sourceCell.CellComment != null)
{
HSSFPatriarch patr = myHSSFWorkBook.GetSheetAt(myHSSFWorkBook.ActiveSheetIndex).CreateDrawingPatriarch();
HSSFComment comment = patr.CreateComment(new HSSFClientAnchor(0, 0, 0, 0, toColIndex, toRowIndex, toColIndex + 1, toRowIndex + 1));
comment.String = new HSSFRichTextString(sourceCell.CellComment.String.ToString());
comment.Author = sourceCell.CellComment.Author;
changingCell.CellComment = comment;
}
}
}
}
}