desde - Fusionar celdas en Excel usando C#
dar formato a excel desde c# (9)
Tengo una base de datos que contiene 5 tablas. Cada tabla contiene 24 filas y cada fila contiene 4 columnas.
Quiero mostrar estos registros en la hoja de Excel. El encabezado de cada tabla es el nombre de la tabla, pero no puedo fusionar las columnas para el encabezado.
Por favor, ayúdame.
Esto resuelve el problema de la manera apropiada
// Merge a row
ws.Cell("B2").Value = "Merged Row(1) of Range (B2:D3)";
ws.Range("B2:D3").Row(1).Merge();
Fragmento de código
public partial class Form1 : Form
{
public Form1()
{
InitializeComponent();
}
private Excel.Application excelApp = null;
private void button1_Click(object sender, EventArgs e)
{
excelApp.get_Range("A1:A360,B1:E1", Type.Missing).Merge(Type.Missing);
}
private void Form1_Load(object sender, EventArgs e)
{
excelApp = Marshal.GetActiveObject("Excel.Application") as Excel.Application ;
}
}
Gracias
Puede usar Microsoft.Office.Interop.Excel:
worksheet.Range[worksheet.Cells[rowNum, columnNum], worksheet.Cells[rowNum, columnNum]].Merge();
También puedes usar NPOI:
var cellsTomerge = new NPOI.SS.Util.CellRangeAddress(firstrow, lastrow, firstcol, lastcol);
_sheet.AddMergedRegion(cellsTomerge);
Puedes usar NPOI para hacerlo.
Workbook wb = new HSSFWorkbook();
Sheet sheet = wb.createSheet("new sheet");
Row row = sheet.createRow((short) 1);
Cell cell = row.createCell((short) 1);
cell.setCellValue("This is a test of merging");
sheet.addMergedRegion(new CellRangeAddress(
1, //first row (0-based)
1, //last row (0-based)
1, //first column (0-based)
2 //last column (0-based)
));
// Write the output to a file
FileOutputStream fileOut = new FileOutputStream("workbook.xls");
wb.write(fileOut);
fileOut.close();
tomar una lista de cadenas como
List<string> colValListForValidation = new List<string>();
y hacer coincidir cadena antes de la tarea. te ayudará a bcz todas las celdas de fusión tendrán el mismo valor
Usando Interop, obtienes un rango de celdas y llamas al método .Merge()
en ese rango.
eWSheet.Range[eWSheet.Cells[1, 1], eWSheet.Cells[4, 1]].Merge();
Excel.Application xl = new Excel.ApplicationClass();
Excel.Workbook wb = xl.Workbooks.Add(Excel.XlWBATemplate.xlWBATWorkshe et);
Excel.Worksheet ws = (Excel.Worksheet)wb.ActiveSheet;
ws.Cells[1,1] = "Testing";
Excel.Range range = ws.get_Range(ws.Cells[1,1],ws.Cells[1,2]);
range.Merge(true);
range.Interior.ColorIndex =36;
xl.Visible =true;
Worksheet["YourRange"].Merge();
oSheet.get_Range("A1", "AS1").Merge();