我有下面的代碼位時,我的目標是能正常工作的.NET 3.5:問題與使用Office互操作與Excel和.NET 4.0/4.5
Microsoft.Office.Interop.Excel.Application _excelInstance;
Microsoft.Office.Interop.Excel.Worksheet _excelWorksheet;
Microsoft.Office.Interop.Excel.Workbook _excelWorkbook;
_excelInstance = new Microsoft.Office.Interop.Excel.Application();
_excelWorkbook = _excelInstance.Workbooks.Add();
_excelWorksheet = (Microsoft.Office.Interop.Excel.Worksheet)_excelWorkbook.Worksheets.get_Item(1);
然而,當我面向.NET 4.5中,編譯器給出上面最後一行的以下錯誤:
無法找到編譯動態表達式所需的一個或多個類型。你錯過了一個參考嗎?
我無法針對此項目的.NET 3.5,它必須是4.0或4.5。
任何想法會造成這種情況,或者我應該如何解決這個問題?
謝謝。
編輯 -
這裏是entier類:
public class ExcelWriter : IDisposable
{
private string _outputFile;
public ExcelWriter(string outputFile)
{
_outputFile = outputFile;
}
public void Write(List<string[]> data)
{
Microsoft.Office.Interop.Excel.Application _excelInstance;
Microsoft.Office.Interop.Excel.Worksheet _excelWorksheet;
Microsoft.Office.Interop.Excel.Workbook _excelWorkbook;
_excelInstance = new Microsoft.Office.Interop.Excel.Application();
_excelWorkbook = _excelInstance.Workbooks.Add();
_excelWorksheet = (Microsoft.Office.Interop.Excel.Worksheet)_excelWorkbook.Worksheets.get_Item(1);
int rowNumber = 1;
foreach (var row in data)
{
int columnNumber = 1;
foreach (var field in row)
{
_excelWorksheet.Cells[rowNumber, columnNumber] = field;
columnNumber++;
}
rowNumber++;
}
if (File.Exists(_outputFile))
{
File.Delete(_outputFile);
}
_excelWorkbook.SaveAs(_outputFile);
_excelWorkbook.Close();
_excelInstance.Quit();
}
public void Dispose()
{
if (File.Exists(_outputFile))
{
File.Delete(_outputFile);
}
}
}
什麼版本的辦公室?我嘗試了14.0完全相同,並沒有得到框架4.5的編譯器錯誤。我使用的是Office 2010 – EkoostikMartin
。 –
所以它適用於我。一定有你在這裏離開的東西。請包括更多的細節(項目類型,你沒有顯示的其他代碼等)。我假設VS2012? – EkoostikMartin