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楼所说,要不然真能这样交换,那就乱套了