0

请帮忙。我使用 gembox.spreadsheet 库在 excel 文件的 2 张表中的特定行处插入和复制。但它仍然存在无效论点的问题。

public void InsertCopyData()
{
    SpreadsheetInfo.SetLicense("FREE-LIMITED-KEY");
    ExcelFile ef = new ExcelFile();

    // Loads Excel file.
    ef.LoadXls(@"C:\templateExcel\DataTable.xls");

    // Selects first and 2nd worksheet.
    ExcelWorksheet w1 = ef.Worksheets[0];
    ExcelWorksheet w2 = ef.Worksheets[1];

    //insert copy file  
    w1.InsertCopy(w1.Rows["A1"], w2.Rows["A4"]);


    //Saves the file in XLS format.
    ef.SaveXls(@"C:\templateExcel\Insert DataTable.xls");
}
4

2 回答 2

1

请注意,GemBox.Spreadsheet 可以让您插入工作表、行和/或列。您使用无效参数的 API 用于插入工作表副本,为了插入行副本,请使用以下内容:

// Inserts specified number of copied rows before the current row.
var currentRow = w1.Rows["A1"];
currentRow.InsertCopy(1, w2.Rows["A4"]);
于 2015-03-30T08:58:37.597 回答
1

你不能这样使用:ef.LoadXls(@"C:\templateExcel\DataTable.xls");

您应该写入以加载现有的 Excel 文件。

GemBox.Spreadsheet.ExcelFile ef = new GemBox.Spreadsheet.ExcelFile();
ef = GemBox.Spreadsheet.**ExcelFile.Load**("D:\\Example.xlsx");
ExcelWorksheet ws = ef.Worksheets["Sheet1"];  (or)   ExcelWorksheet ws = ef.Worksheets[0]; 
// writing data to excel file code...
ws.Cells[0, 0].Value = example_1;
ws.Cells[1, 0].Value = example_2;
ef.Save("D:\\Example.xlsx");
于 2013-03-15T07:56:53.950 回答