我在开发自定义报表的时候遇到的问题,想把一个EXCEL里一个单元格里折行的数据一行的取出来,放到下面的行去.

解决方案 »

  1.   

    Microsoft.Office.Interop.Excel.Application MyExcel=new Microsoft.Office.Interop.Excel.Application();
    MyExcel.Visible = true;
    object missing = System.Reflection.Missing.Value;
    Microsoft.Office.Interop.Excel.Workbook MyWb=MyExcel.Workbooks.Open(Server.MapPath("ReportImage") + "\\DG" + strFileNumName + ".xls".ToString(),missing,
    missing,missing,missing,
    missing,missing,missing,
    missing,missing,missing,
    missing,missing,missing,
    missing);
    afterTime = DateTime.Now;
    try
    {
    MyExcel.Visible = true;
    Microsoft.Office.Interop.Excel._Worksheet MyWs=(Microsoft.Office.Interop.Excel._Worksheet)MyWb.Worksheets.get_Item(1);  
    Microsoft.Office.Interop.Excel.Range Rg = MyWs.get_Range("A2","H2");

    Microsoft.Office.Interop.Excel.Range rng = (Microsoft.Office.Interop.Excel.Range)MyWs.Rows[1,Type.Missing];
    rng.Insert(Microsoft.Office.Interop.Excel.XlInsertShiftDirection.xlShiftDown,false); Microsoft.Office.Interop.Excel.Range rngTitle = (Microsoft.Office.Interop.Excel.Range)MyWs.Rows[2,Type.Missing];
    rngTitle.Insert(Microsoft.Office.Interop.Excel.XlInsertShiftDirection.xlShiftDown,false);
    Microsoft.Office.Interop.Excel.Range v_RangeTitle = MyWs.get_Range("A2", Type.Missing);
    v_RangeTitle.Cells[1,1]=strName;

    // Excel的get_Range方法可以得到Excel的单元格,可以用来设置图片显示的位置
    Microsoft.Office.Interop.Excel.Range v_Range = MyWs.get_Range("A1", Type.Missing);
    Microsoft.Office.Interop.Excel.Pictures v_Pictures = (Microsoft.Office.Interop.Excel.Pictures)MyWs.Pictures(Type.Missing);
    Microsoft.Office.Interop.Excel.Picture v_Picture = v_Pictures.Insert(Server.MapPath("ReportImage") + "\\Pic" + strFileNumName + ".jpg", Type.Missing);
      

  2.   

    EXCEL 列设置自动换行不行吗?