【问题标题】:Error while saving Workbook using Aspose tool after Deleting a range of Cells删除一系列单元格后使用 Aspose 工具保存工作簿时出错
【发布时间】:2012-10-23 22:15:11
【问题描述】:

在保存工作簿之前,我正在删除工作表中的 CellArea(我使用过 ClearContents、DeleteRange、ClearRange)。但它不断给出错误“指定的参数超出了有效值的范围。” 但是,如果我删除删除代码并尝试保存,它工作正常..请建议.. 我的代码是这样的:

foreach (GcmTemplateWorksheets _worksheet in Worksheetdetails)
        {
            if (_worksheet.IsTransposeRequired ?? false)
            {
                Range maxRange = _workbook.Worksheets[_worksheet.WorksheetName].Cells.MaxDisplayRange;
                _workbook.Worksheets[_worksheet.WorksheetName].Cells.ClearRange((int)_worksheet.StartRow, (int)_worksheet.StartColumn, maxRange.RowCount, maxRange.ColumnCount);
            }
            _workbook.Worksheets[_worksheet.WorksheetName].Cells.ImportDataTable(data_.Tables[_worksheet.FixedWorksheetName], false, _worksheet.ExportDataStartRow ?? 0, 0);
            //Instantiate the error checking options
            ErrorCheckOptionCollection opts = _workbook.Worksheets[_worksheet.WorksheetName].ErrorCheckOptions;
            int index = opts.Add();
            ErrorCheckOption opt = opts[index];
            //Disable the numbers stored as text option
            opt.SetErrorCheck(ErrorCheckType.TextNumber, false);
            opt.AddRange(CellArea.CreateCellArea(0, 0, _workbook.Worksheets[_worksheet.WorksheetName].Cells.MaxDataRow, _workbook.Worksheets[_worksheet.WorksheetName].Cells.MaxDataColumn));
        }
             string _exportPath = System.Configuration.ConfigurationManager.AppSettings["ExportTemplatePath"].ToString();
        //Save the worksheet at an appropriate configured location and assign path to _exportPath..
        _workbook.Save(_exportPath);
        return _exportPath;

【问题讨论】:

    标签: c# excel aspose aspose-cells


    【解决方案1】:

    我已经测试了这个场景,在我的测试过程中,我不得不相应地更新你的代码(因为有一些对象/指针或其他选项我不确定它们的值。所以,我有使用虚拟数据表和其他相应的对象/值)使用我的示例输入文件(Book1.xlsx)和我们的最新版本/修复来测试他的案例:Aspose.Cells for .NET v7.3.2.5,根据我的观察,它可以工作绝对没问题。我没有发现任何问题。

    这是我的v7.3.2.5完整的可运行示例代码(请推荐用户尝试):

    示例代码:

    DataTable dt = new DataTable();
    dt.Columns.Add("Column1", typeof(int));
    dt.Columns.Add("Column2", typeof(string));
    dt.Columns.Add("Column3", typeof(int));
    for (int i = 0; i < 100; i++)
    {
        dt.Rows.Add(i / 10 + 1, "Item " + i.ToString(), i);
    }
    Workbook _workbook = new Workbook(@"e:\test2\book1.xlsx");
    Worksheet _worksheet = _workbook.Worksheets[0];
    Range maxRange = _workbook.Worksheets[_worksheet.Name].Cells.MaxDisplayRange;
    //workbook.Worksheets[_worksheet.WorksheetName].Cells.ClearRange((int)_worksheet.StartRow, (int)_worksheet.StartColumn, maxRange.RowCount, maxRange.ColumnCount);
    _workbook.Worksheets[_worksheet.Name].Cells.ClearRange((int)maxRange.FirstRow, (int)maxRange.FirstColumn, maxRange.RowCount, maxRange.ColumnCount);
    //workbook.Worksheets[_worksheet.WorksheetName].Cells.ImportDataTable(data.Tables[_worksheet.FixedWorksheetName], false, _worksheet.ExportDataStartRow ?? 0, 0)
    _workbook.Worksheets[_worksheet.Name].Cells.ImportDataTable(dt, false, 0, 0);
    //Instantiate the error checking options
    ErrorCheckOptionCollection opts = _workbook.Worksheets[_worksheet.Name].ErrorCheckOptions;
    
    int index = opts.Add();
    ErrorCheckOption opt = opts[index];
    //Disable the numbers stored as text option
    opt.SetErrorCheck(ErrorCheckType.TextNumber, false);
    opt.AddRange(CellArea.CreateCellArea(0, 0, _workbook.Worksheets[_worksheet.Name].Cells.MaxDataRow, _workbook.Worksheets[_worksheet.Name].Cells.MaxDataColumn));
    string _exportPath = @"e:\test2\ouput_book1.xlsx";
    //Save the worksheet at an appropriate configured location and assign path to _exportPath..
    _workbook.Save(_exportPath);
    

    我还附上了资源文件(Book1.xlsxouput_book1.xlsx)供您参考。如果您仍然遇到最新版本的任何问题,您能否分享一个可运行的代码/控制台应用程序(他也可能为此动态使用一些虚拟数据表)以在我们这边重现该问题。您也可以在Aspose.Cells product support forum 中发布查询。

    【讨论】:

    • 感谢您的生动回应。我发现我以某种方式将错误的参数传递给 ClearRange 方法,这导致工作簿最终无法保存。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多