Создание механизма селектора - непростая задача. Я предлагаю узнать, что уже существует:
Добавьте это в свою точку TODO:
aRange.Columns.AutoFit ();
Этот метод открывает уже созданный файл excel, Autofit все столбцы всех листов на основе третьей строки. Как вы можете видеть, Range выбран из «A3 to K3» в excel.
public static void AutoFitExcelSheets () {Microsoft.Office.Interop.Excel.Application _excel = null; Microsoft.Office.Interop.Excel.Workbook excelWorkbook = null; try {string ExcelPath = ApplicationData.PATH_EXCEL_FILE; _excel = новый Microsoft.Office.Interop.Excel.Application (); _excel.Visible = false; object readOnly = false; объект isVisible = true; объект отсутствует = System.Reflection.Missing.Value; excelWorkbook = _excel.Workbooks.Open (ExcelPath, 0, false, 5, "", "", false, Microsoft.Office.Interop.Excel.XlPlatform.xlWindows, "", true, false, 0, true, false, false ); Microsoft.Office.Interop.Excel.Sheets excelSheets = excelWorkbook.Worksheets; foreach (Microsoft.Office.Interop.Excel.Worksheet currentSheet в excelSheets) {string Name = currentSheet.Name; Microsoft.Office.Interop.Excel.Worksheet excelWorksheet = (Microsoft.Office.Interop.Excel.Worksheet) excelSheets.get_Item (Name); Microsoft.Office.Interop.Excel.Range excelCells = (Microsoft.Office.Interop.Excel.Range) excelWorksheet.get_Range («A3», «K3»); excelCells.Columns.AutoFit (); }} catch (Exception ex) {ProjectLog.AddError ("EXCEL ERROR: Can AutoFit:" + ex.Message); } наконец {excelWorkbook.Close (true, Type.Missing, Type.Missing); GC.Collect (); GC.WaitForPendingFinalizers (); releaseObject (excelWorkbook); releaseObject (_excel); }}
Также существует
aRange.EntireColumn.AutoFit ();
См. В чем разница между Range.Columns и Range.EntireColumn .
Взгляните на эту статью, это не соответствует вашему решению, но подходит для нее:
Это может быть слишком поздно, но если вы добавите рабочий стол
. Columns.AutoFit ();
или
рабочий лист.Rows.AutoFit ();
он также работает.
aRange.Rows.AutoFit ()
. – krillgar 1 May 2013 в 15:08