2016-01-13 89 views
1

我想在ASP.NET中使用ClosedXML打开一个6MB的Excel文件,但我得到一个错误,说“隐式转换错误,无法转换空对象。打开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

下面是用于获取excel文件在封闭XML

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

//下面的boqserverfilepath实时运行的代码是指其中Excel文件存储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