Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате
Форум программистов > Разработка под ASP.NET > Получение данных из Excel


Автор: kelt 27.10.2006, 08:30
Всем привет. У меня такая проблема. Надо из загружаемого файла, расширения .xls, получить данные имея точные ящейки, есть код но он вылетает еще при определении переменной класса.

вот сообщение ошибки что мне выдает:
System.UnauthorizedAccessException: Retrieving the COM class factory for component with CLSID {00024500-0000-0000-C000-000000000046} failed due to the following error: 80070005. at _Default.WorkExcel(String FilePath) in c:\Inetpub\wwwroot\ReadExcel\Default.aspx.cs:line 22

вот код программы, может чего упустил:
Код

using System;
using System.IO;
using System.Data;
using System.Configuration;
using System.Management;
using System.Web;
using System.Web.Security;
using System.Web.UI;
using System.Web.UI.WebControls;
using System.Web.UI.WebControls.WebParts;
using System.Web.UI.HtmlControls;
using Excel = Microsoft.Office.Interop.Excel;
using System.Reflection;


public partial class _Default : System.Web.UI.Page 
{
    private void WorkExcel(string FilePath)
    {
        try
        {
            Excel.ApplicationClass locExcel = new Excel.ApplicationClass();
            locExcel.Workbooks.Open(FilePath, Missing.Value, false,
            Missing.Value, Missing.Value, Missing.Value, true,
            Missing.Value, Missing.Value, Missing.Value, false,
            Missing.Value, Missing.Value, Missing.Value, Missing.Value);

            Excel.Worksheet workshet = (Excel.Worksheet)locExcel.ActiveSheet;
            locExcel.Visible = false;
            Excel.Range range;
            range = workshet.get_Range("B6", Missing.Value);

            lblCell.Text = range.Value2.ToString();
        }
        catch (Exception ex)
        {
            lblCell.Text = ex.ToString();
        }
    }
    
    protected void Page_Load(object sender, EventArgs e)
    {
        if (IsPostBack)
        {
            if (FileUpload1.HasFile)
            {
                string pathConn = @"C:\temp\" + FileUpload1.FileName;

                FileUpload1.SaveAs(pathConn);
                WorkExcel(pathConn);
            }
        }
    }
}

Автор: archimed7592 27.10.2006, 09:08
учётная запись ASPNET не имеет полномочий для доступа к DCOM.
control panel->admin tools->componet services->computers->my computer->DCOM config->Microsoft Excel->right click->security

Автор: kelt 27.10.2006, 09:19
Да знаю, но не все так просто у меня такой строчки нету, в этом то и проблема

Автор: arilou 29.10.2006, 17:03
kelt, какой строчки?

Автор: kelt 30.10.2006, 07:29
Цитата

учётная запись ASPNET не имеет полномочий для доступа к DCOM.
control panel->admin tools->componet services->computers->my computer->DCOM config->Microsoft Excel->right click->security


такого у меня нету. Я находил статью по решению такой проблемы. Но решить не смог у меня нету 
Microsoft Excel. Поэтому я не могу ничего такого сделать.

Автор: archimed7592 30.10.2006, 07:41
Цитата(kelt @  30.10.2006,  08:29 Найти цитируемый пост)
Я находил статью по решению такой проблемы. Но решить не смог у меня нету Microsoft Excel. Поэтому я не могу ничего такого сделать.

 smile тебе не кажется, что проблема совсем не в asp, а в твоём компе? посоветовать могу только переустановку office...если не поможет, то всю систему с нуля...

Автор: kelt 30.10.2006, 14:04
переустановка офиса не помогла. Переустановку системы делать никак не хочу, потому что дело муторное. smile 

Автор: archimed7592 30.10.2006, 16:09
попробуй поставить на отдельный партишн систему + .net fw + iis + ... короче только то, что нужно. если поможет, то опиши проблему в разделе для админинов...

Автор: NamelessOne 14.3.2007, 13:15
У меня возникает та же проблема при попытке запустить процесс Excel на сервере. Я перекопал кучу материала по этому вопросу, в DCOM config дал полные права объекту Microsoft Excel для ASPNET, IWAM и IUSR, но это не помогло. Странно, что при использовании Office 2003 без SP, ошибки не возникает, а вот если поставить SP 1 или 2, то она появляется. Кому-нибудь удавалось эту проблему решить?

Автор: NamelessOne 14.3.2007, 18:53
Всё, решил проблему. Если кому интересно, решение вот тут: http://support.microsoft.com/kb/288368/

Powered by Invision Power Board (http://www.invisionboard.com)
© Invision Power Services (http://www.invisionpower.com)