簡體   English   中英

方法'this'沒有重載需要'1'參數

[英]no overload for method 'this' takes '1' arguments

string file = "Test.xls";
Workbook workbook = new Workbook();
Worksheet sheet = new Worksheet("First Sheet");
workbook.Worksheets.Add(sheet);
for (int i = 0; i < 100; i++)
sheet.Cells[i][0] = new Cell(""); // error here
workbook.Save(file);

在這里,我試圖使用excel庫創建一個excel文件。 但我得到一個錯誤“excel發現內容不清楚。然后我包含一個for循環用excel表填充一些空數據。但現在我收到錯誤”沒有重載方法'這''需要'1'參數“on上面代碼中的第6行。

我只想在c#中使用ExcelLibrary創建一個新的Excel工作表。

提前致謝!

正如@Calvin所說,代碼存在多個問題。 這是一個有效的解決方案:

string file = "Test.xls";
Application excel = new Application();
Workbook workbook = excel.Workbooks.Add();
Worksheet sheet = (Worksheet) workbook.Worksheets.Add();
sheet.Name = "First Sheet";
for (int i = 1; i <= 100; i++)
    ((Range)sheet.Cells[i, 1]).Value = "";
workbook.SaveAs(file);

sheet.Cells[i][0] = new Cell("")您通過Range屬性分配單元格而不是new Cell()

您需要參考MSDN,因為它不像您期望的那樣直接或想要它。 VSTO通常在.NET API的其他部分中脫穎而出,因為它非常不直觀。

http://msdn.microsoft.com/en-us/library/microsoft.office.interop.excel.worksheets.add.aspx

首先,你不要在你認為剛剛創建的工作表中調用添加傳遞。 添加需要4個可選參數,否則創建工作表並返回對該工作表的引用。

例如在MSDN示例中:

Excel.Worksheet newWorksheet;
newWorksheet = (Excel.Worksheet)Globals.ThisWorkbook.Worksheets.Add();

要設置Cell Value,請嘗試

sheet.Cells[i,1].Value = ""; 

sheet.Cells[i][0]...

另外,為了清晰起見,建議在for循環周圍放置括號。 保存兩個字符沒有任何好處。

for (int i = 1; i < 100; i++)
{
    sheet.Cells[i,1].Value = ""; // error here
}
workbook.Save(file);

嘗試使用賦值

sheet.Cells[i][0].Value = "";

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM