2016-01-13 6 views
1

Я пытаюсь открыть файл Excel 6 МБ в ASP.NET с использованием ClosedXML, но я получаю сообщение об ошибке «Ошибка в неявном преобразовании. Невозможно преобразовать нулевой объект».Открытие файла Excel с использованием ошибки ClosedXML

Вот мой код:

Dim temppath = Path.GetTempPath() 
    Dim filenamestr As String = Path.GetFileNameWithoutExtension(Path.GetRandomFileName()) 

    Dim tempfilename As String = Path.Combine(temppath, filenamestr + ".xlsx") 
    Using fs = New FileStream(tempfilename, FileMode.Create, FileAccess.Write) 
     xlStream.WriteTo(fs) 
    End Using 

    Dim xlwb = New XLWorkbook(tempfilename) 'The part having the error 

Источник: «DocumentFormat.OpenXml» Я также попытался открытия существующего файла Excel, он по-прежнему приводит к этой ошибке. Также попробовал поместить файл в разные директории, думая, что это просто из-за разрешения моих дисков, совсем не удачи. Заранее спасибо.

ответ

0

Ниже рабочий код в режиме реального времени используется для получения файла первенствует в закрытом XML

private void workbookProcessing(string workbookname) 
    { 
     SqlDatabase objdb = new SqlDatabase (OSMC.constring_Property); 

// Ниже в boqserverfilepath ссылается папка, в которой хранятся файлы первенствует EX: «~/Uploaded_Boq /»;

 string fullfilename = System.Web.HttpContext.Current.Server.MapPath (OneStopMethods_Common.boqserverfilepath + workbookname); 
     XLWorkbook theWorkBook = new XLWorkbook (fullfilename); 
     int worksheetcount = theWorkBook.Worksheets.Count; 
     foreach(IXLWorksheet theWorkSheet in theWorkBook.Worksheets) 
     { 
      foreach(IXLRow therow in theWorkSheet.Rows()) 
      { 
       foreach(IXLCell thecell in therow.Cells()) 
       { 
             int tenderid = 1001; 

             int Activity_Section_objseq = tenderosm.generateNextTenderObjSequenceNo (tenderid, "tender_boq_activity_section"); 
             string boqactivitysectionInsquery = " insert into tender_boq_activity_section(fk_tender_id,obj_seq_no,parent_obj_seq_no,activity_section_no,workbook_name,worksheet_name,row_index,cell_reference,element_type,element_description) values(" + tenderid + "," + Activity_Section_objseq + ",' 10 ','20','" + workbookname + "','" + theWorkSheet.Name + "'," + therow.RowNumber () + ",'"+thecell.Address+"','activity','" + thecell.Value + "');"; 
             objdb.ExecuteNonQuery (CommandType.Text, boqactivitysectionInsquery); 
       } 
      } 
     } 
    } 

Вы принимаете значения согласно вашему требованию и вставляете значения в базу данных.

Надеюсь, что вышеуказанная информация будет полезна. Пожалуйста, дайте мне знать ваши мысли.

спасибо karthik

 Смежные вопросы

  • Нет связанных вопросов^_^