Empresas
Empregos
  • Sobre nós
  • Soluções
    • Publicação de vagas
      Publique sua vaga e receba candidatos qualificados em 48h.
    • Avaliações de candidatos
      Mais de 500 testes técnicos e psicológicos, mais anti-fraude.
    • Headhunting
      Busca executiva personalizada do início ao fim.
    • Folha de Pagamento + EOR
      Dispersão de folha e EOR em mais de 15 países da LATAM.
  • Preços
  • Empregos

0

591
Visualizações
cómo detectar celdas combinadas en c # usando MS interop excel

Quiero detectar celdas combinadas en una fila/hoja completa (preferible). Aquí está mi código

 Microsoft.Office.Interop.Excel.Application xl = new Microsoft.Office.Interop.Excel.Application(); Microsoft.Office.Interop.Excel.Workbook workbook = xl.Workbooks.Open(source); //Microsoft.Office.Interop.Excel.Worksheet ws = (Microsoft.Office.Interop.Excel.Worksheet)workbook.Sheets[sheetNumber]; Microsoft.Office.Interop.Excel.Worksheet ws = (Microsoft.Office.Interop.Excel.Worksheet)workbook.Worksheets[objInMemory._sheetName]; xl.ScreenUpdating = false; ws.Columns.ClearFormats(); ws.Rows.ClearFormats(); int colCount = ws.UsedRange.Columns.Count; int rowCount = ws.UsedRange.Rows.Count; int strtRow = ws.UsedRange.Rows[1].Row; int strtCol = ws.UsedRange.Columns[1].Column; Microsoft.Office.Interop.Excel.Range objRange = null;

Ni este trozo de código

 if (ws.Cells.MergeCells) { }

Ni este fragmento de código (solo para la fila 1)

 for (int j = strtCol; j < strtCol + colCount; j++) { objRange = ws.Cells[strtRow, j]; if (ws.Cells[strtRow, j].MergeCells) { message = "The Sheet Contains Merged Cells"; break; } }

parece funcionar ... Por favor, hágame saber cómo verificar si una hoja / rango específico contiene celdas combinadas.

over 4 years ago · Santiago Trujillo
3 Respostas
Responde à pergunta

0

Si desea verificar si un Range contiene celdas combinadas, lo que busca es la propiedad MergeCells .

Si se fusiona un rango, devolverá true . Si un rango contiene celdas combinadas (es decir, algunas están combinadas, otras no), devolverá DBNull.Value .

Entonces, esto debería funcionar para toda su hoja:

 object mergeCells = ws.UsedRange.MergeCells; var containsMergedCells = mergeCells == DBNull.Value || (bool)mergeCells;
over 4 years ago · Santiago Trujillo Relatório

0

MergeCells no es una función de celdas, es una función de rango, así que en lugar de:

 if (ws.Cells[strtRow, j].MergeCells)

necesitas:

 _Excel.Range range = (_Excel.Range) ws.Cells[strtRow, j]; if(range.MergeCells) //returns true if cell is merged or false if its not
over 4 years ago · Santiago Trujillo Relatório

0

ws.Columns.ClearFormats(); y ws.Rows.ClearFormats(); para que funcione la propiedad range.MergeCells .

over 4 years ago · Santiago Trujillo Relatório
Responde à pergunta
Encontrar trabalhos remotos

Descubra a nova forma de encontrar um emprego!

melhores empregos
Principais categorias de trabalho
Empresas
Postar vaga Preços Comercial
Jurídico
Termos e Condições Política de privacidade
© 2026 PeakU Inc. All Rights Reserved.
Andres GPT
Recomende algumas ofertas para mim
Preciso de ajuda