110,502
社区成员
发帖
与我相关
我的任务
分享
//你是要针对EXCEL进行操作吗?
//1。步骤1, 打开你要进行操作的EXCEL,获取EXCEL明细,并且生成二维数组
#region 返回选定区域
/// <summary>
/// 2010-05-20,黄飞翔 /// 返回选定区域
/// 例:GetRange(ws, StartX, StartY, EndX, EndY);
/// </summary>
/// <param name="ws">工作表</param>
/// <param name="StartX">起始位置X</param>
/// <param name="StartY">起始位置Y</param>
/// <param name="EndX">结束位置X</param>
/// <param name="EndY">结束位置Y</param>
/// <returns>返回选定区域</returns>
public Excel.Range GetRange(Excel.Worksheet ws, int StartX, int StartY, int EndX, int EndY)
{
Excel.Range range = ws.get_Range(ws.Cells[StartX, StartY], ws.Cells[EndX, EndY]);
return range;
}
#endregion
#region 根据工作表获得,明细对像列表
/// <summary>
/// 根据工作表获得,明细对像列表
/// </summary>
/// <param name="helper"></param>
/// <param name="ws"></param>
/// <returns></returns>
private ArrayList GetDetailData(Excel.Worksheet ws)
{
Excel.Range range = GetRange(ws, 1, 1, 5000, CodeList.Count + 3);
object[,] Value = (object[,])range.Value2;
}
#endregion
步骤2:二维数组 Value[0,1]分别对应excel的位置,这个表示0行1列的值,具体根据你的业务逻辑,把需要更改的行列替换成你需要的新数组 比如 NewValue,然后调用下面方法,再重新赋值新的EXCEL
/// <summary>
/// 赋值excel
/// </summary>
/// <param name="ws">工作表</param>
/// <param name="values">待插入的二维数组</param>
/// <param name="x1">开始行</param>
/// <param name="y1">开始列</param>
/// <param name="rowCount">需要插入的行数</param>
/// <param name="columnCount">需要插入的列数</param>
public void SetCellsValue(Excel.Worksheet ws, object[,] values, int x1, int y1, int rowCount, int columnCount)
{
try
{
Excel.Range ra = null;
ra = (Excel.Range)ws.Cells[x1, y1];
ra = ra.get_Resize(rowCount, columnCount);
ra.Value = values;
}
catch (Exception ee)
{
Other.WriteMessage(ee.Message);
}
}
//步骤3:保存新的excel.并且导出
xlBook.Save();
xlBook.Close(true , false , Missing.Value);
xlApp.Quit();