J'ai une base de données qui contient 5 tables. Chaque tableau contient 24 lignes et chaque ligne contient 4 colonnes.
Je veux afficher ces enregistrements dans une feuille Excel. L'en-tête de chaque table est le nom de la table, mais je ne parviens pas à fusionner les colonnes pour l'en-tête.
Aidez-moi, s'il vous plaît.
En utilisant Interop, vous obtenez une plage de cellules et appelez la méthode .Merge()
sur cette plage.
eWSheet.Range[eWSheet.Cells[1, 1], eWSheet.Cells[4, 1]].Merge();
oSheet.get_Range("A1", "AS1").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;
Extrait de code
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 ;
}
}
Merci
Cela résout le problème de la manière appropriée
// Merge a row
ws.Cell("B2").Value = "Merged Row(1) of Range (B2:D3)";
ws.Range("B2:D3").Row(1).Merge();
Vous pouvez utiliser NPOI pour le faire.
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();
prendre une liste de chaîne comme
List<string> colValListForValidation = new List<string>();
et faire correspondre la chaîne avant la tâche. il vous aidera bcz toutes les cellules de fusion auront la même valeur
Worksheet["YourRange"].Merge();