方法'this'没有重载需要'1'参数

时间:2013-11-03 15:09:12

标签: c#

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工作表。

提前致谢!

4 个答案:

答案 0 :(得分:2)

正如@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);

答案 1 :(得分:1)

sheet.Cells[i][0] = new Cell("")您按Range属性分配的单元格不是new Cell()

答案 2 :(得分:0)

您需要参考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();

要设置单元格值,请尝试

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);

答案 3 :(得分:0)

尝试使用

指定值
sheet.Cells[i][0].Value = "";
相关问题