日期:2014-05-16  浏览次数:21197 次

C#导入Excel 公式问题
使用com组件导入Excel 


Excel 的列中有的是使用公式计算的,使用com组件读出来的是公式,而不是数值。
我是这样取值的: ((Range)mySheet.Cells[i, j]).Formula.ToString();


比如某一列的公式为:=A10+B10,请问怎样才能直接得到结果,不能在程序里去计算,因为Excel里的公式可能是其它的。不一定是简单的加法。
------解决方案--------------------
http://blog.csdn.net/lanwilliam/article/details/2390831
------解决方案--------------------
个人觉得难度比较大。Excel公式中是字母加数字确定单元格,代码中是二维数字确定。如果能自动转换过来,可以实现。静候佳音!
------解决方案--------------------
/// <summary>
        /// 获取Excel数据
        /// </summary>
        /// <param name="fileName"></param>
        private DataTable GetEcxelData(string fileName)
        {
            try
            {
                if (tableName == null)
                {
                    return null;
                }
                else
                {
                    this.Cursor = Cursors.WaitCursor;  //鼠标显示状态
                    //根据路径打开一个Excel文件并将数据填充到DataSet中
                    string strConn = "Provider=Microsoft.Jet.OLEDB.4.0;Data Source = " + fileName + ";Extended Properties ='Excel 8.0;HDR=NO;IMEX=1'";
                    //导入时包含Excel中的第一行数据,并且将数字和字符混合的单元格视为文本进行导入
                    OleDbConnection myExcelConn = new OleDbConnection(strConn);
                    myExcelConn.Open();
                    OleDbDataAdapter myCommand = new OleDbDataAdapter("SELECT  * FROM [" + tableName + "]", strConn);
                    DataSet ds = new DataSet();
                    myCommand.Fill(ds, "table1");
                    //上获取到Excel文件内容
                   &nbs