我对C#非常陌生,我希望您能对我有所帮助。 目前,我正在研究读取sqlite3数据库文件的Excel-VSTO加载项。 查询结果存储在数组中。 我将这些数组写入指定的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