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

内蒙古的初学者求高手解决下有关问题

2013-07-08 
内蒙古的菜鸟求高手解决下问题代码功能是从excel中读数据:代码如下 for (int j 1 j 32 j++){string

内蒙古的菜鸟求高手解决下问题
代码功能是从excel中读数据:代码如下
 for (int j = 1; j < 32; j++)
            {

                string path = @"D:\预警、重要报告、通报\乡镇\1" + j + ".xls";
                MessageBox.Show(path);
                Microsoft.Office.Interop.Excel.Application excel2 = new Microsoft.Office.Interop.Excel.Application();
                excel2.Visible = true;             //得到WorkBook对象, 可以用两种方式之一: 下面的是打开已有的文件      
                Excel.Workbook xBook = excel2.Workbooks._Open(path, Missing.Value, Missing.Value, Missing.Value, Missing.Value, Missing.Value, Missing.Value, Missing.Value, Missing.Value, Missing.Value, Missing.Value, Missing.Value, Missing.Value);             //xBook=xApp.Workbooks.Add(Missing.Value);//新建文件的代码            
                Excel.Sheets objSheets;
                Excel._Worksheet objSheet;
                Excel.Range range;//=new Range[100];
                string[] td1 = new string[10000];
                string[] td2 = new string[10000];
                string[] tg1 = new string[10000];
                string[] tg2 = new string[10000];
                string[] qq1 = new string[10000];
                string[] qq2 = new string[10000];



                //Get a reference to the first sheet of the workbook.


                objSheets = excel2.Worksheets;
                objSheet = (Excel._Worksheet)objSheets.get_Item(1);
                //Get a range of data.
                range = objSheet.get_Range("A1", "M17");
                object[,] saRet1 = (System.Object[,])range.get_Value(Missing.Value);
              
                for (int i = 1; i < 18; i++)
                {
                    td1[i] = Convert.ToString(saRet1[3, i]);
                    td1[i+17] = Convert.ToString(saRet1[10, i]);
                    tg1[i] = Convert.ToString(saRet1[5, i]);
                    tg1[i+17] = Convert.ToString(saRet1[12, i]);
                    qq1[i] = Convert.ToString(saRet1[2, i]);
                    qq1[i+17] = Convert.ToString(saRet1[9, i]);
                }


                Excel.Workbook workbook1 = excel2.Workbooks._Open(@"D:\预警、重要报告、通报\乡镇\JY.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);
                Worksheet worksheet1 = (Worksheet)workbook1.Worksheets["Sheet1" ];


                Worksheet worksheet2 = (Worksheet)workbook1.Worksheets["Sheetqy1"];
                int tdd = 6,tgg=3;
                for (int i1 = 1; i1 < 35;i1++ )
                {


                    worksheet1.Cells[j + 1, tdd] = td1[i1];
                    worksheet1.Cells[j + 1, tgg] = tg1[i1];
                    worksheet2.Cells[j + 1, tdd] = qq1[i1];
                    excel2.Visible = true;
                }
            }
        }
读的excel表如下(17行,13列):
白脑包晴-22~-13狼 山晴-24~-14
新  华晴-22~-14城  关晴-23~-13
图  克晴-23~-13双河镇晴-24~-13
干召庙晴-23~-13石哈河晴-28~-19
乌加河晴-26~-16德岭山晴-26~-16
牧羊海农场晴-26~-16海力素晴-28~-18
宝音图晴-26~-16呼和镇晴-24~-13
头道桥晴-23~-13乌盖镇晴-24~-13
团结镇晴-25~-14沙海镇晴-23~-12
胜  丰晴-23~-14套  海晴-24~-14
塔尔湖晴-23~-13新公中晴-23~-13
纳林套海晴-22~-13补  隆晴-22~-12
哈腾套海晴-22~-12隆胜合晴-23~-13
沙  金晴-23~-13大佘太晴-24~-14
小佘太晴-24~-14白彦花晴-24~-13
朝阳镇晴-24~-13新安镇晴-24~-13
巴市机场晴-24~-14蛮会镇晴-22~-13
运行到: td1[i] = Convert.ToString(saRet1[3, i]);
出问题了,问题为:1、索引超出了数组界限
2、确保索引不是负数
3、确保数据列名称正确
                 


[解决办法]
saRet1的大小是多少?i此时是多少?

热点排行