2015-06-03 31 views
0

我正在处理Excel表单的.xls格式并将数据写入其中。问题是,只要数据不以字母开头,它就会提示我不同的错误。不应该以特殊字符开头吗?

例如:????当我的列数据开始= US-ASCII Q谷歌关键词=丢给我一个例外:

Exception from HRESULT: 0x800A03EC 

当我的数据是一样--- -----原始邮件--------主题:的错误是:

Not enough storage is available to complete this operation. (Exception from HRESULT: 0x8007000E (E_OUTOFMEMORY)) 

这是我正在写数据:

foreach (AllCasesReplies infoList in allCasesReplies) 
    { 
     n = 0; 
     mWorkSheet.Cells[l + m, ++n] = infoList.id; 
     mWorkSheet.Cells[l + m, ++n] = infoList.replies; 
     m++; 
    } 

这是我如何清理我的对象:

private static void SaveAndCollecttheGarbage(Microsoft.Office.Interop.Excel.Application excelApp, string path, Microsoft.Office.Interop.Excel.Sheets sheet) 
{ 
     excelApp.Columns.AutoFit(); 
     mWorkBook.SaveAs(path, Microsoft.Office.Interop.Excel.XlFileFormat.xlWorkbookNormal, 
     Missing.Value, Missing.Value, Missing.Value, Missing.Value, Microsoft.Office.Interop.Excel.XlSaveAsAccessMode.xlExclusive, 
     Missing.Value, Missing.Value, Missing.Value, 
     Missing.Value, Missing.Value); 
     mWorkBook.Close(true, Missing.Value, Missing.Value); 
     sheet = null; 
     mWorkBook = null; 
     excelApplication.Quit(); 
     GC.WaitForPendingFinalizers(); 
     GC.Collect(); 
     GC.WaitForPendingFinalizers(); 
     GC.Collect(); 
} 

所以我试图忽略这些数据和他们伟大的工作。

是否有任何规则,列必须以特定字符开始,如果是的话,这些是什么?

+0

是什么公式开始使用Excel?你如何逃避那个角色? ... – CodeCaster

+0

写入excel时使用哪个库? –

+0

我没有得到你?我没有使用任何公式。如果你问我如何省略这些列,我没有添加到我正在写入Excel的“列表”中。 – Coder

回答

0

如果您键入“?”在具有通用格式的excel单元格中,excel自动将其解释为公式。在将文本插入单元格之前,您需要更改单元格格式。

类似:

foreach (AllCasesReplies infoList in allCasesReplies) 
    { 
     n = 0; 
     Microsoft.Office.Interop.Excel.Range range1 = mWorkSheet.Cells[l + m, ++n] as Range; 
     range1.NumberFormat = "@"; 
     range1.Value2 = infoList.id; 

     Microsoft.Office.Interop.Excel.Range range2 = mWorkSheet.Cells[l + m, ++n] as Range; 
     range2.NumberFormat = "@"; 
     range2.Value2 = infoList.replies; 

     m++; 
    } 
+0

更改单元格格式意味着什么 – Coder

+0

在编辑的代码中查看上面的示例。 – Jegan

+0

对不起,它应该是NumberFormat。我已经在上面纠正了它。 – Jegan