Page 1 of 1

Nach dem Hosten auf IIS ist es nicht möglich, lokale/Sharepoint-Dateien über Excel zu öffnen und zu bearbeiten

Posted: 31 Dec 2024, 13:33
by Guest
Ich habe eine Webanwendung, die zum Bearbeiten von im Sharepoint-Pfad gespeicherten Excel-Dateien verwendet wird. Ich verwende Microsoft Office Interop und habe die Excel-Datei lokal installiert. Im Debug-Modus funktioniert alles einwandfrei, aber wenn ich dies für die Produktion freigebe, erhalte ich den in diesem Screenshot gezeigten Fehler:
Image

Ich habe zur Fehlerbehebung auf dem lokalen PC gehostet und das Ergebnis ist dasselbe. Ich weiß nicht, wo ich Änderungen vornehmen muss, um das Problem zu lösen.
Der Code ist
starker Text

Code: Select all

   var excel = new Application { Visible = false};
workbook = excel.Workbooks.Open(@"https://xxx-my.sharepoint.com/personal/xxx/Documents/HIS-Customer%20Registration%20Details/HIS-Customer-Details.xlsx");
worksheet = (Microsoft.Office.Interop.Excel.Worksheet)workbook.Worksheets[1];

int newRow = worksheet.Range["A" + worksheet.Rows.Count, Type.Missing]
.End[XlDirection.xlUp].Row + 1;

// Fill you cells
worksheet.Cells[newRow, 1] = saveData.PatDemographics.firstname; // Your LastRow + 1 - 3;
worksheet.Cells[newRow, 2] = saveData.PatDemographics.middlename;
worksheet.Cells[newRow, 3] = saveData.PatDemographics.lastname;
worksheet.Cells[newRow, 4] = saveData.PatDemographics.age; ; // Your LastRow + 1 - 3;
worksheet.Cells[newRow, 5] = saveData.PatDemographics.dob;

var eidDtls = saveData.IdentDocuments?.Where(x => x.Referenceid.Contains("EID"));
var passDtls = saveData.IdentDocuments?.Where(x => x.Referenceid.Contains("Passport"));
var appDtls = saveData.IdentDocuments?.Where(x => x.Referenceid.Contains("App No"));

if (eidDtls?.Count() > 0)
{
worksheet.Cells[newRow, 13] = saveData.IdentDocuments?.Where(x => x.Referenceid.Contains("EID"))?.FirstOrDefault().IdentValue;
worksheet.Cells[newRow, 14] = saveData.IdentDocuments?.Where(x => x.Referenceid.Contains("EID"))?.FirstOrDefault().ExpiryDate;
}

if (passDtls?.Count() > 0)
{
worksheet.Cells[newRow, 15] = saveData.IdentDocuments?.Where(x => x.Referenceid.Contains("Passport"))?.FirstOrDefault().IdentValue;
worksheet.Cells[newRow, 16] = saveData.IdentDocuments?.Where(x => x.Referenceid.Contains("Passport"))?.FirstOrDefault().ExpiryDate;
}

if (appDtls?.Count() > 0)
{
worksheet.Cells[newRow, 17] = saveData.IdentDocuments?.Where(x => x.Referenceid.Contains("App No"))?.FirstOrDefault().IdentValue;
worksheet.Cells[newRow, 18] = saveData.IdentDocuments?.Where(x => x.Referenceid.Contains("App No"))?.FirstOrDefault().ExpiryDate;
}
worksheet.Cells[newRow, 19] = DateTime.Now;

// Save changes
workbook.Save();