C # Excel VSTO - добавить таблицу в диапазон - PullRequest
0 голосов
/ 22 ноября 2018

Я очень новичок в C #, и я надеялся, что вы можете мне немного помочьВ настоящее время я работаю над надстройкой Excel-VSTO, которая читает файл sqlite3-database.Результаты запросов хранятся в массивах.Я записываю эти массивы в указанные ячейки Excel.

Пока все хорошо - теперь я хочу создать listObject из этого диапазона.Я застрял с моим методом:

private void build_table4(string StartCol, int StartRow, string EndCol, int RowsCount, int ColCount, Boolean show_totals, string TableStyle, string TableName, int IncludeRowsBefore)
    {

        string StartCell = StartCol + Convert.ToString(StartRow - IncludeRowsBefore);
        string EndCell = EndCol + Convert.ToString(StartRow + RowsCount);

        Microsoft.Office.Interop.Excel.Workbook xlWb = Globals.ThisAddIn.Application.ActiveWorkbook;
        Microsoft.Office.Interop.Excel.Worksheet xlWorksheet = xlWb.Sheets[1];

        //Excel.Range tableRange = (Excel.Range)xlWorksheet.Range[xlWorksheet.Cells[StartCellY, StartCellX], xlWorksheet.Cells[ToCellY, ToCellX]];
       Excel.Range tableRange = (Excel.Range)xlWorksheet.Range[StartCell, EndCell];

         Excel.ListObject list = xlWorksheet.ListObjects.Add(Excel.XlListObjectSourceType.xlSrcRange, tableRange,
                                                 Type.Missing, Excel.XlYesNoGuess.xlYes, Type.Missing);

        //list.Name = "Table";
        list.Name = TableName;
        //list.TableStyle = "TableStyleMedium2";
        list.TableStyle = TableStyle;
        //list.ShowTotals = show_totals;
        //xlWorksheet.Rows.AutoFit();
        //xlWorksheet.Columns.AutoFit();
        Excel.ListRow row = list.ListRows.AddEx(Type.Missing, Type.Missing);

        //MessageBox.Show("StartCellX:" + StartCellX + ", StartCellY:" + StartCellY + ", RowsCount:" + RowsCount + ", ColCount:" + ColCount + ", ToCellX:" + ToCellX + ", ToCellY:" + ToCellY);
    }

Когда я называю это так:

private void button1_Click(object sender, RibbonControlEventArgs e)
    {  
        build_table4("B", 3, "H", 15, 7, false, "", "Daten", 0);
    }

Я много пробовал, но пока не нашел решения.Он всегда добавляет две дополнительные строки, которые я не ожидал, и я не мог понять, почему:

До и после

Я надеюсь, у вас есть несколько советов для меня.Заранее спасибо.Извините за мой плохой английский: x

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...