3 Star 3 Fork 1

一键飙血/NpoiWorkbookToHtml

加入 Gitee
与超过 1200万 开发者一起发现、参与优秀开源项目,私有仓库也完全免费 :)
免费加入
文件
克隆/下载
NpoiWorkbookToHtml.cs 2.48 KB
一键复制 编辑 原始数据 按行查看 历史
一键飙血 提交于 2016-08-30 17:23 +08:00 . 添加NpoiWorkbookToHtml.cs文件
public string NpoiWorkbookToHtml(IWorkbook workbook)
{
var sheetMark = 0;
var sheet = workbook.GetSheetAt(sheetMark++);
var sb = new System.Text.StringBuilder();
while (sheet != null)
{
var mergresCount = sheet.NumMergedRegions;
var merges = new List<NPOI.SS.Util.CellRangeAddress>();
for (int i = 0; i < mergresCount; i++)
{
merges.Add(sheet.GetMergedRegion(i));
}
var rowMark = 0;
var row = sheet.GetRow(rowMark++);
var rowIndex = 0;
sb.AppendLine("<table>");
while (row != null)
{
sb.AppendLine("<tr>");
var cellIndex = 0;
foreach (var item in row.Cells)
{
var _m = merges.FirstOrDefault(v => rowIndex > v.FirstRow && rowIndex <= v.LastRow && v.FirstColumn == cellIndex);
while (_m != null)
{
cellIndex = _m.LastColumn + 1;
_m = merges.FirstOrDefault(v => rowIndex > v.FirstRow && rowIndex <= v.LastRow && v.FirstColumn == cellIndex);
}
var merge = merges.FirstOrDefault(v => v.FirstRow == rowIndex && v.FirstColumn == cellIndex);
if (merge != null)
{
cellIndex = merge.LastColumn;
}
sb.AppendLine(string.Format("<td rowspan=\"{0}\" colspan=\"{1}\">", (merge != null ? (merge.LastRow - merge.FirstRow + 1) : 1), (merge != null ? (merge.LastColumn - merge.FirstColumn + 1) : 1)));
sb.AppendLine(item.ToString());
sb.AppendLine("</td>");
cellIndex++;
}
sb.AppendLine("</tr>");
row = sheet.GetRow(rowMark++);
rowIndex++;
}
try
{
sheet = workbook.GetSheetAt(sheetMark++);
}
catch (ArgumentOutOfRangeException ex)
{
sheet = null;
}
sb.AppendLine("</table>");
}
return sb.ToString();
}
Loading...
马建仓 AI 助手
尝试更多
代码解读
代码找茬
代码优化
C#
1
https://gitee.com/lianggengbin/NpoiWorkbookToHtml.git
git@gitee.com:lianggengbin/NpoiWorkbookToHtml.git
lianggengbin
NpoiWorkbookToHtml
NpoiWorkbookToHtml
master

搜索帮助