使用oledb从Excel中读取合并单元格

时间:2018-02-02 12:48:36

标签: c# asp.net asp.net-mvc oledb

我正在使用oledb在我的应用程序中读取.xls文件。它工作正常但真正的问题出现在我的Excel包含行或列中的合并单元格时。

这是excel中的数据

excel data

这是使用webgrid在屏幕上显示的方式

output using webgrid

1 个答案:

答案 0 :(得分:0)

我要说的第一件事就是从EXCEL的合并细胞中远离它!这是DEVIL的工作。好的,如果您仍想这样做,请考虑以下选项(您没有多少选项)。 。 。

using Spire.Xls;

namespace Detect_Merged_Cells
{
    class Program
    {
        static void Main(string[] args)
        {
            Workbook workbook = new Workbook();
            workbook.LoadFromFile("Sample.xlsx");
            Worksheet sheet = workbook.Worksheets[0];

            CellRange[] range = sheet.MergedCells;
            foreach (CellRange cell in range)
            {
                cell.UnMerge();
            }
            workbook.SaveToFile("Output.xlsx",ExcelVersion.Version2010);
        }
    }
}

OR

Excel.Range firstCell = excelWorksheet.get_Range("A1", Type.Missing);
Excel.Range lastCell = excelWorksheet.Cells.SpecialCells(Excel.XlCellType.xlCellTypeLastCell, Type.Missing);

object[,] cellValues;
object[,] cellFormulas;

Excel.Range worksheetCells = excelWorksheet.get_Range(firstCell, lastCell);
cellValues = worksheetCells.Value2 as object[,];
cellFormulas = worksheetCells.Formula as object[,];