内蒙古的菜鸟求高手解决下问题
代码功能是从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此时是多少?