Das Lesen von Excel -Blatt in meinem .NET 8 -Code funktioniert nicht, ich erhalte Nummern anstelle des tatsächlichen Tex
Posted: 30 Apr 2025, 20:46
Ich habe eine .NET 8 -Anwendung, in der ein Excel -Blatt .xlsx in SharePoint online gespeichert ist. src = "https://i.sstatic.net/vsf3o2o7.png"/>
Text: zurückgegeben. Welches ist der Doppelwert der Datumszeit, während er manchmal nur das Jahr und dann nur den Monat zurückgibt?
Danke
Text:
Code: Select all
58955 | Bing Organic | Organic | n/a | | Bing - Organic | | 28674 | n/a | SERPs | | | 01/10/2024 | 01/10/2024 | 31/10/2024
< /code>
Dies ist der Code, um diese Datei zu lesen: < /p>
var stream = await httpClient.GetStreamAsync(uri);
using var doc = SpreadsheetDocument.Open(stream, false);
var workbookPart = doc.WorkbookPart;
var sheet = workbookPart.Workbook.Sheets.Elements().First();
var worksheetPart = (WorksheetPart)workbookPart.GetPartById(sheet.Id!);
var filteredResults = new List();
using var reader = OpenXmlReader.Create(worksheetPart);
bool isFirstRow = true;
while (reader.Read())
{
if (reader.ElementType != typeof(Row))
continue;
var row = (Row)reader.LoadCurrentElement();
var cells = row.Elements().ToList();
if (isFirstRow)
{
isFirstRow = false; // skip header
continue;
}
// Extract cell values (adjust index based on actual structure)
string GetCellValue(int index)
{
if (index >= cells.Count)
return "";
var cell = cells[index];
var value = cell.InnerText;
return value;
}
string vnumber = GetCellValue(7);
if (vnumber != null && leads.Where(a => a.MSID == vnumber).Count() > 0)
{
_logger.LogInformation("vnumber" + vnumber);
var update = leads.FirstOrDefault(a => a.MSID == vnumber);
update.UMSID = GetCellValue(0);
_logger.LogInformation(GetCellValue(0));
update.Publisher = GetCellValue(1);
_logger.LogInformation(GetCellValue(1));
update.Medium = GetCellValue(2);
_logger.LogInformation(GetCellValue(2));
update.Vendor = GetCellValue(3);
_logger.LogInformation(GetCellValue(3));
update.UTM_campaign = GetCellValue(4);
_logger.LogInformation(GetCellValue(4));
update.nterneer_Source = GetCellValue(5);
_logger.LogInformation(GetCellValue(5));
update.UTM_Source = GetCellValue(6);
update.Focus = GetCellValue(8);
update.Creative = GetCellValue(9);
update.Test_Type = GetCellValue(10);
update.Test_Creative = GetCellValue(11);
_logger.LogInformation(GetCellValue(12));
update.Start_week_month = !string.IsNullOrWhiteSpace(GetCellValue(12))? DateTime.FromOADate(double.Parse(GetCellValue(12))):null;
_logger.LogInformation(GetCellValue(13));
update.Start_date = !string.IsNullOrWhiteSpace(GetCellValue(13)) ? DateTime.FromOADate(double.Parse(GetCellValue(13))) : null;
_logger.LogInformation(GetCellValue(14));
update.End_date = !string.IsNullOrWhiteSpace(GetCellValue(14)) ? DateTime.FromOADate(double.Parse(GetCellValue(14))) : null;
update.Impressions = GetCellValue(15);
update.CPM_CPL = GetCellValue(16);
update.Cost = GetCellValue(17);
update.Invoice_Status = GetCellValue(18);
update.Open = GetCellValue(19);
update.Open_rate = GetCellValue(20);
update.Clicks_publisher_visits_GA_ = GetCellValue(21);
update.CTR = GetCellValue(22);
update.Notes = GetCellValue(23);
update.Count_of_Leads = GetCellValue(24);
update.Brand_Ambassador = GetCellValue(25);
}
}
< /code>
Hier ist die Ausgabe, die ich für die oben gezeigte Zeile erhalten habe: < /p>
2025-04-30T16:06:41Z [Information] vnumber28674
2025-04-30T16:06:41Z [Information] 58955
2025-04-30T16:06:41Z [Information] 51
2025-04-30T16:06:41Z [Information] 48
2025-04-30T16:06:41Z [Information] 35
2025-04-30T16:06:41Z [Information] 35
2025-04-30T16:06:41Z [Information] 45566
2025-04-30T16:06:41Z [Information] 2024
2025-04-30T16:06:41Z [Information] 10
< /code>
Warum habe ich die eigentliche Zeichenfolge nicht bekommen? Und warum bekomme ich immer Zahlen? Warum wird das Datum als 45566
Danke