Skip to content

Commit

Permalink
Fixed Sonar warnings
Browse files Browse the repository at this point in the history
  • Loading branch information
LuisM000 committed Apr 10, 2024
1 parent 69179da commit 4216cd3
Showing 1 changed file with 64 additions and 57 deletions.
Original file line number Diff line number Diff line change
@@ -1,5 +1,6 @@
using System.Text;

using DocumentFormat.OpenXml;
using DocumentFormat.OpenXml.Packaging;
using DocumentFormat.OpenXml.Spreadsheet;

Expand Down Expand Up @@ -37,70 +38,47 @@ public string ReadText(Stream stream)
{
var resultSb = new StringBuilder();

using (var doc = SpreadsheetDocument.Open(stream, false))
using var doc = SpreadsheetDocument.Open(stream, false);
var sheets = doc.WorkbookPart?.Workbook.Sheets?.OfType<Sheet>().ToList();
if (sheets == null)
{
var sheets = doc.WorkbookPart?.Workbook.Sheets?.OfType<Sheet>().ToList();
if (sheets == null)
return resultSb.ToString();
}

var rowSb = new StringBuilder();
var sharedStrings = doc.WorkbookPart?.SharedStringTablePart?.SharedStringTable.Elements<SharedStringItem>().ToList() ?? [];

foreach (var sheet in sheets)
{
if (sheet.Id?.Value == null)
{
continue;
}

var worksheet = (doc.WorkbookPart!.GetPartById(sheet.Id.Value) as WorksheetPart)?.Worksheet;
var rows = worksheet?.GetFirstChild<SheetData>()?.Descendants<Row>();

if (rows == null)
{
return resultSb.ToString();
continue;
}

var rowSb = new StringBuilder();
var sharedStrings = doc.WorkbookPart?.SharedStringTablePart?.SharedStringTable.Elements<SharedStringItem>().ToList() ?? [];
if (WithWorksheetName)
{
rowSb.AppendLine(WorksheetTemplateName(sheet.Name));
}

foreach (var sheet in sheets)
foreach (var row in rows)
{
if (sheet.Id?.Value == null)
{
continue;
}

var worksheet = (doc.WorkbookPart!.GetPartById(sheet.Id.Value) as WorksheetPart)?.Worksheet;
var rows = worksheet?.GetFirstChild<SheetData>()?.Descendants<Row>();

if (rows == null)
{
continue;
}

if (WithWorksheetName)
{
rowSb.AppendLine(WorksheetTemplateName(sheet.Name));
}

foreach (var row in rows)
{
var cells = row.Descendants<Cell>().Where(r => r.CellValue != null).ToList();

for (var i = 0; i < cells.Count; i++)
{
var cellValue = GetCellValue(sharedStrings, cells[i]);

if (WithQuotes && cellValue.IsText)
{
rowSb.Append('"')
.Append(cellValue.Value)
.Append('"');
}
else
{
rowSb.Append(cellValue.Value);
}

if (i < cells.Count - 1)
{
rowSb.Append(ColumnSeparator);
}
}

rowSb.AppendLine();
}

resultSb.AppendLine(rowSb.ToString().Trim())
.AppendLine();

rowSb.Clear();
var rowValue = GetRowValue(row, sharedStrings);

rowSb.AppendLine(rowValue);
}

resultSb.AppendLine(rowSb.ToString().Trim())
.AppendLine();

rowSb.Clear();
}

return resultSb.ToString().Trim();
Expand All @@ -127,4 +105,33 @@ private static (string Value, bool IsText) GetCellValue(IEnumerable<SharedString

return (cell.CellValue?.InnerText, false);
}

private string GetRowValue(OpenXmlElement row, IReadOnlyCollection<SharedStringItem> sharedStrings)
{
var cells = row.Descendants<Cell>().Where(r => r.CellValue != null).ToList();

var rowSb = new StringBuilder();
for (var i = 0; i < cells.Count; i++)
{
var cellValue = GetCellValue(sharedStrings, cells[i]);

if (WithQuotes && cellValue.IsText)
{
rowSb.Append('"')
.Append(cellValue.Value)
.Append('"');
}
else
{
rowSb.Append(cellValue.Value);
}

if (i < cells.Count - 1)
{
rowSb.Append(ColumnSeparator);
}
}

return rowSb.ToString();
}
}

0 comments on commit 4216cd3

Please sign in to comment.