日期:2014-05-17  浏览次数:21015 次

c# Excel 两列交换问题!!!
将两列数据交换位置,比如:A列和B列交换位置,最终结果为:A列=B列,B列=A列。我的思路是,先将A列赋予空白列(C列),再将B列赋予A列,最后将C列赋给B列。但是运行之后,没有什么变化。麻烦各位给个思路。谢谢各位!代码如下:
C# code
Excel.Workbooks wbs = Aexcel.Workbooks;
            Excel.Workbook wb = wbs[1];
            Excel.Worksheet ws = null;

            ws = (Excel.Worksheet)wb.Worksheets[str];//str是表单Sheet1
            Excel.Range column1 = ws.get_Range(ws.Cells[1,1] as Excel.Range,ws.Cells[ws.Rows.Count,1] as Excel.Range);//A列
            Excel.Range column2 = ws.get_Range(ws.Cells[1, 2] as Excel.Range, ws.Cells[ws.Rows.Count, 2] as Excel.Range);B列
            Excel.Range column = ws.get_Range(ws.Cells[1,5] as Excel.Range,ws.Cells[ws.Rows.Count,5]as Excel.Range);//C列
            column=column1;
            column1 = column2;
            column2 = column;
            wb.Save();


------解决方案--------------------
你交换的是columnN变量引用,而不是excel表格中的值。

你应该循环,然后改变单元格的值。
------解决方案--------------------
楼上说的对

你可以把两列的值都读取到两个数组里,然后把对应的数组分贝写回到想要的位置
------解决方案--------------------
如1楼所说,要不然真能这样交换,那就乱套了