C#把二维数组中的指定数据存储到EXCEL指定位置
我设置了一个二维数组list,比如我要在桌面创一个名为“文件”的EXCEL表格,把LIST[4][5]存到创建的excel的sheet2的第二行第二列即B2位置,要怎么实...
我设置了一个二维数组list,比如我要在桌面创一个名为“文件”的EXCEL表格,把LIST[4][5]存到创建的excel的sheet2的第二行第二列即B2位置,要怎么实现?希望提供详细代码,可以让我把数组任意数据存到excel任意工作表的任意位置~~初学C#,不要问我为什么不手动复制,有一大堆数据要处理,我只是举个例子。
感觉会的人应该只是几行代码~求指导啊 展开
感觉会的人应该只是几行代码~求指导啊 展开
展开全部
private void writeExcel()
{
#region 初始化Excel表
Excel.Application app = new Excel.Application();
object MissingValue = Type.Missing;
Excel.Workbook wb = app.Workbooks.Add(true);
Excel.Worksheet ws = null;
app.DisplayAlerts = false;
app.AlertBeforeOverwriting = false;
ws = (Excel.Worksheet)wb.Sheets["Sheet1"];
#endregion
#region 填充数据
Object[,] dataArray = new Object[1 + write.Rows.Count, write.Columns.Count];
for (int i = 0; i < write.Columns.Count; i++)//填写列名
{
dataArray[0, i] = write.Columns[i].ColumnName;
for (int j = 0; j < write.Rows.Count; j++)//填入数据
{
dataArray[j + 1, i] = write.Rows[j][i].ToString();
}
}
Excel.Range range = ws.Range[ws.Cells[1, 1], ws.Cells[1 + write.Rows.Count, write.Columns.Count]];
range.Value2 = dataArray;
range.EntireColumn.AutoFit(); //自动设置列宽
range.EntireRow.AutoFit(); //自动设置行高
wb.Saved = true;
wb.SaveCopyAs(path);//保存
app.Quit();//关闭进程
//关闭EXCEL进程
app = null;
wb = null;
ws = null;
GC.Collect();
MessageBox.Show("Excel导出完成");
}
代码中的write是datatable,你改为arraylist就可以了
更多追问追答
追问
刚C#起步这么复杂看不懂啊~能像问题要求中内容写一下么~有些地方备注下不然偶实在看不了,麻烦了
追答
Object[,] dataArray = new Object[5, 3];
就是你说的二维数组嘛,上面这样new出来就是5行3列的二维数组了.
Excel.Range range = ws.Range[ws.Cells[1, 1], ws.Cells[5,3];这句就是将二维数据保存到excel的范围嘛,ws.Cells[1, 1]就是第一行第一列 A1.范围就是A1到F3咯,这个按你的意愿改啦.
range.Value2 = dataArray;就是二维数组dataArray 放到你设定的excel范围range内
初始化和关闭线程你可以直接用.
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询