首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > .NET > C# >

阴山脚下初学者求高手帮忙解决下小小疑点

2013-07-20 
阴山脚下菜鸟求高手帮忙解决下小小问题? string myStrFileName1 DateTime.Now.AddDays(0).ToString(MM

阴山脚下菜鸟求高手帮忙解决下小小问题?
 string myStrFileName1 = DateTime.Now.AddDays(0).ToString("MM");
                int sheet;
                sheet = Convert.ToInt32(myStrFileName1);
                Microsoft.Office.Interop.Excel.Application excel2 = new Microsoft.Office.Interop.Excel.Application();
                Excel.Workbook workbook1 = excel2.Workbooks._Open(@"D:\预警、重要报告、通报\副本巴市回归.xls", Missing.Value, Missing.Value, Missing.Value, Missing.Value, Missing.Value, Missing.Value, Missing.Value, Missing.Value
                       , Missing.Value, Missing.Value, Missing.Value, Missing.Value);
                Excel.Sheets objSheets;
                Excel._Worksheet objSheet;
                Excel._Worksheet objSheet1;
                Excel.Range range;//=new Range[100];
                Excel.Range range1;//=new Range[100];
                string[,] tdyb = new string[100, 100];
                int[,]   tgyb=new int [100,100];
                int[,] tyb = new int[100, 100];
                string[,] tgdyb = new string[100, 100];

                objSheets = excel2.Worksheets;
                objSheet = (Excel._Worksheet)objSheets.get_Item(sheet);
                range = objSheet.get_Range("A1", "IT34");
                // range1 = objSheet1.get_Range("A1", "GN32");


                object[,] saRet1 = (System.Object[,])range.get_Value(Missing.Value);
                //object[,] saRet11 = (System.Object[,])range1.get_Value(Missing.Value);
                //MessageBox.Show(Convert.ToString(saRet1[2, 1]));
                int iii = 6;
                string my = DateTime.Now.AddDays(0).ToString("dd");
                int intld = 14, intcells1 = 7;
                for (int i2 = 1; i2 <= 3; i2++)
                {
                    for (int i1 = 1; i1 <= 9; i1++)
                    {

     tdyb[i2, i1] = Convert.ToString(saRet1[Convert.ToInt32(my) + i2 + 2, intld]);
  tgdyb[i2, i1] = Convert.ToString(saRet1[Convert.ToInt32(my) + i2 + 2, intld+14]);
                        tgyb[i2, i1] = Convert.ToInt32(tdyb[i2, i1]);
                        tyb[i2, i1] = Convert.ToInt32(tgdyb[i2, i1]);
                                          
                      intld = intld + 28;
                        

                    }
                    intld = 14;



                    }
 tgyb[i2, i1] = Convert.ToInt32(tdyb[i2, i1]);
这一行出问题了,我读的都是数字,不知道为啥出问题,
错误为:将一个字符串转换为data time时,应先分析该字符串以获日期,然后将每个变量放到data time变量中
[解决办法]
string my = DateTime.Now.AddDays(0).ToString("dd");你这里的问题,时间类型不能直接转int的你要获取里面的值就用正则,或者split()来截取
[解决办法]

引用:
 string myStrFileName1 = DateTime.Now.AddDays(0).ToString("MM");
                int sheet;
                sheet = Convert.ToInt32(myStrFileName1);
                Microsoft.Office.Interop.Excel.Application excel2 = new Microsoft.Office.Interop.Excel.Application();
                Excel.Workbook workbook1 = excel2.Workbooks._Open(@"D:\预警、重要报告、通报\副本巴市回归.xls", Missing.Value, Missing.Value, Missing.Value, Missing.Value, Missing.Value, Missing.Value, Missing.Value, Missing.Value
                       , Missing.Value, Missing.Value, Missing.Value, Missing.Value);
                Excel.Sheets objSheets;
                Excel._Worksheet objSheet;
                Excel._Worksheet objSheet1;
                Excel.Range range;//=new Range[100];
                Excel.Range range1;//=new Range[100];
                string[,] tdyb = new string[100, 100];


                int[,]   tgyb=new int [100,100];
                int[,] tyb = new int[100, 100];
                string[,] tgdyb = new string[100, 100];

                objSheets = excel2.Worksheets;
                objSheet = (Excel._Worksheet)objSheets.get_Item(sheet);
                range = objSheet.get_Range("A1", "IT34");
                // range1 = objSheet1.get_Range("A1", "GN32");
                object[,] saRet1 = (System.Object[,])range.get_Value(Missing.Value);
                //object[,] saRet11 = (System.Object[,])range1.get_Value(Missing.Value);
                //MessageBox.Show(Convert.ToString(saRet1[2, 1]));
                int iii = 6;
                string my = DateTime.Now.AddDays(0).ToString("dd");
                int intld = 14, intcells1 = 7;
                for (int i2 = 1; i2 <= 3; i2++)
                {
                    for (int i1 = 1; i1 <= 9; i1++)
                    {

     tdyb[i2, i1] = Convert.ToString(saRet1[Convert.ToInt32(my) + i2 + 2, intld]);
  tgdyb[i2, i1] = Convert.ToString(saRet1[Convert.ToInt32(my) + i2 + 2, intld+14]);
                        tgyb[i2, i1] = Convert.ToInt32(tdyb[i2, i1]);


                        tyb[i2, i1] = Convert.ToInt32(tgdyb[i2, i1]);
                                          
                      intld = intld + 28;
                        

                    }
                    intld = 14;

                    }
 tgyb[i2, i1] = Convert.ToInt32(tdyb[i2, i1]);
这一行出问题了,我读的都是数字,不知道为啥出问题,
错误为:将一个字符串转换为data time时,应先分析该字符串以获日期,然后将每个变量放到data time变量中


提示很明显了,你获取的字符串不能转换为时间格式,要做处理。你先用变量取到你获取的那个值,看看是什么格式的?字符转换为时间格式,是有格式要求的

热点排行