2009-02-10 35 views
31

Tôi có một cơ sở dữ liệu chứa 5 bảng. Mỗi bảng chứa 24 hàng và mỗi hàng chứa 4 cột.Hợp nhất các ô trong Excel bằng C#

Tôi muốn hiển thị các bản ghi này trong trang tính Excel. Tiêu đề của mỗi bảng là tên của bảng, nhưng tôi không thể hợp nhất các cột cho tiêu đề.

Hãy giúp tôi.

Trả lời

46

Sử dụng Interop bạn nhận được một dải ô và gọi phương thức .Merge() trên phạm vi đó.

eWSheet.Range[eWSheet.Cells[1, 1], eWSheet.Cells[4, 1]].Merge(); 
+1

bạn đang thiếu một parameter- bạn có thể đặt bên trong 'Type.Missing' – eladyanai

+0

này không làm việc cho bảng tính của tôi –

3

Code Snippet

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

Cảm ơn

10
oSheet.get_Range("A1", "AS1").Merge(); 
0

mất một danh sách các chuỗi như như

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

và chuỗi trận đấu trước khi nhiệm vụ. nó sẽ giúp bạn bcz tất cả kết hợp các tế bào sẽ có cùng một giá trị

7
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; 
+1

Cảm ơn bạn cho tất cả các chi tiết :) – Missy

1

Điều này giải quyết vấn đề theo cách thích hợp

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

Bạn có thể sử dụng Microsoft.Office.Interop.Excel:

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

Bạn cũng có thể sử dụng NPOI:

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

Bạn có thể sử dụng NPOI để thực hiện.

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(); 
1
Worksheet["YourRange"].Merge(); 
+1

Trong khi đoạn mã này có thể là giải pháp , [bao gồm giải thích] (// meta.stackexchange.com/questions/114762/explaining-entirely-‌ code-based-answers) thực sự giúp cải thiện chất lượng bài đăng của bạn. Hãy nhớ rằng bạn đang trả lời câu hỏi cho người đọc trong tương lai và những người đó có thể không biết lý do cho đề xuất mã của bạn. – Adam

Các vấn đề liên quan