Ema112 Ответов: 0

Как избежать исключений, встречающихся при вызове веб-метод, чтобы сохранить файл Excel в ASP.NET в C#?


Как избежать возникновения исключений при вызове webmethod для сохранения в файл excel в asp.net с#?

Я получаю ниже ошибку при вызове веб-метода для сохранения данных из таблицы данных в лист excel из приложения:
Получение фабрики COM-класса для компонента с CLSID {00024500-0000-0000-C000-000000000046} не удалось из-за следующей ошибки: 80070005.

Пробовал их но ни один не сработал:
Create directory "C:\Windows\SysWOW64\config\systemprofile\Desktop" (for 64 bit Windows) or "C:\Windows\System32\config\systemprofile\Desktop" (for 32 bit Windows)  if the folder directory is not there & give full control permission to  those  in the Windows Folder if no permission is given.

Также делать
Install MS Office Pro Latest (I used 2010 Pro)
Also ensure whether there is admin privilege set to access Microsoft Excel File by following below steps
1. Go to Start->Run
2. Type "DCOMCNFG"
3. Open Console Root->Component Service->Computer->My Computer->DCOM Config
4. Right Click Property on "Microsoft Excel Application"
5. Go to Identity Tab
6. Select "This User"
a.      Enter User : Logged User Name(Admin rights)
b.      Enter Password : Logged Admin user Password  and afterwards click apply.


Что я уже пробовал:

Мой веб-метод выглядит следующим образом:
public bool SaveExcelFile(DataSet ds, string strFileName, string strUploadType)
{
//bool bolResult = 0;
// ReturnError ошибаться;
строки strCurrentDir = "";
переключатель (strUploadType)
{
case "EmpList": { strCurrentDir = cn. GetWebPath ("EMPLOYEE_LIST_UPLOAD"); break; }
случай "SalaryList": { strCurrentDir = cn. GetWebPath ("SalaryFilePath"); break; }
случай "RFR": { strCurrentDir = cn. GetWebPath ("RFRInitiateFilePath"); break; }
}
если (! файл.Существует(strCurrentDir + strFileName))
{

Microsoft.Офис.Взаимодействие.Excel. _приложение oXL;
Microsoft.Офис.Взаимодействие.Превосходить._Workbook ОРМ;
Microsoft.Офис.Взаимодействие.Превосходить._Worksheet oSheet;
Microsoft.Офис.Взаимодействие.Превосходить.Диапазон орнг;

пробовать
{
oXL = новый Microsoft.Офис.Взаимодействие.Превосходить.Приложение();
oXL.Видна = ложь;
// Получите новую рабочую книгу.
ОРМ = (Майкрософт.Офис.Взаимодействие.Превосходить._Workbook)(oXL.Книги.Добавить (Отсутствует.Ценность));
oSheet = (Microsoft.Офис.Взаимодействие.Превосходить._Worksheet)ОРМ.Параметру activesheet;

int iRow = 2;
если (ДС.Таблицы[0].Строк.Граф > 0)
{
for (int j = 0; j < ds.Таблицы[0].Столбцы.Count; j++)
{
//oSheet.Ячейки.NumberFormat = "@";
oSheet.Ячейки[1, j + 1] = ds. таблицы[0].Столбцы[j].Имя_столбца;
}

// Для каждой строки выведите значения каждого столбца.
for (int rowNo = 0; rowNo < ds.Таблицы[0].Строк.Count; rowNo++)
{
for (int colNo = 0; colNo < ds.Таблицы[0].Столбцы.Count; colNo++)
{
oSheet.Ячейки.NumberFormat = "@";
oSheet.Ячейки[iRow, colNo + 1] = ds.таблицы[0]. строки[rowNo] [colNo].Метод toString();
}
функцию irow++;
}


}

oRng = oSheet. get_Range("A1", " IV1");
oRng.EntireColumn.Автоподбор();
oRng.EntireRow.Скрытый = истинный;
oXL.Видна = ложь;
oXL. UserControl = false;
string strFile = strFileName;/ / +
ОВБ.Сохранить как(strCurrentDir +
strFile, Microsoft.Офис.Взаимодействие.Превосходить.XlFileFormat.xlWorkbookNormal, нуль, нуль, ложное, ложное, Майкрософт.Офис.Взаимодействие.Превосходить.XlSaveAsAccessMode.xlShared, ложь, ложь, нуль, нуль, нуль);
// Нужен весь следующий код, чтобы очистить и удалить все ссылки!!!
ОВБ.Close (null, null, null);
оксл.Рабочая тетрадь.Закрывать();
oXL.Бросить();
Маршал.ReleaseComObject(oRng);
Маршал.ReleaseComObject(oXL);
Маршал.ReleaseComObject(oSheet);
Маршал.Метода releasecomobject(ОРМ);
}

поймать (исключение исключения)
{
//Общий.WriteApplicationLogs(это.ToString ()," save excel", theException.Сообщение + исключение.StackTrace, " веб-сервис");
возвращать false;
}
вернуть true;
}
ещё
{
//Общий.WriteApplicationLogs(это.Метод toString(), "сохранить в Excel", strCurrentDir + strFileName, "веб-сервиса");
возвращать false;
}
}

F-ES Sitecore

Автоматизация офисных приложений не поддерживается в разделе asp.net. Используйте Open XML SDK, драйвер Excel ODBC или коммерческий компонент, такой как Aspose, и есть другие, если вы google.

0 Ответов