web-dev-qa-db-de.com

Zellen in Excel mit C # zusammenführen

Ich habe eine Datenbank, die 5 Tabellen enthält. Jede Tabelle enthält 24 Zeilen und jede Zeile enthält 4 Spalten.

Ich möchte diese Datensätze in einer Excel-Tabelle anzeigen. Die Überschrift jeder Tabelle ist der Name der Tabelle, aber ich kann die Spalten für die Überschrift nicht zusammenführen.

Bitte hilf mir.

34
Nitiin

Mit dem Interop erhalten Sie einen Zellbereich und rufen die .Merge()-Methode für diesen Bereich auf.

eWSheet.Range[eWSheet.Cells[1, 1], eWSheet.Cells[4, 1]].Merge();
55
C. Ross
oSheet.get_Range("A1", "AS1").Merge();
10
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;
8
Ahmad naser

Code-Auszug

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 ;
    }
}

Vielen Dank

3
Akshaya

Dies löst das Problem auf geeignete Weise

// Merge a row
            ws.Cell("B2").Value = "Merged Row(1) of Range (B2:D3)";
            ws.Range("B2:D3").Row(1).Merge();
2
Shalin Jirawla

Sie können NPOI verwenden, um es zu tun.

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();
2

Sie können Microsoft.Office.Interop.Excel verwenden:

worksheet.Range[worksheet.Cells[rowNum, columnNum], worksheet.Cells[rowNum, columnNum]].Merge();

Sie können auch NPOI verwenden:

var cellsTomerge = new NPOI.SS.Util.CellRangeAddress(firstrow, lastrow, firstcol, lastcol);
_sheet.AddMergedRegion(cellsTomerge);
1
Sobhan

nimm eine Liste von Zeichenketten wie

List<string> colValListForValidation = new List<string>();

und übereinstimmende Zeichenfolge vor der Aufgabe. Es hilft Ihnen dabei, dass alle zusammengefügten Zellen denselben Wert haben

0
Vipswelt
Worksheet["YourRange"].Merge();
0
Subha8

Versuch es.

ws.Range("A1:F2").Merge();
0
Ly Thanh Ngo