C#把二维数组中的指定数据存储到EXCEL指定位置

我设置了一个二维数组list,比如我要在桌面创一个名为“文件”的EXCEL表格,把LIST[4][5]存到创建的excel的sheet2的第二行第二列即B2位置,要怎么实... 我设置了一个二维数组list,比如我要在桌面创一个名为“文件”的EXCEL表格,把LIST[4][5]存到创建的excel的sheet2的第二行第二列即B2位置,要怎么实现?希望提供详细代码,可以让我把数组任意数据存到excel任意工作表的任意位置~~初学C#,不要问我为什么不手动复制,有一大堆数据要处理,我只是举个例子。
感觉会的人应该只是几行代码~求指导啊
展开
 我来答
lu233333
推荐于2016-07-15 · 超过26用户采纳过TA的回答
知道答主
回答量:112
采纳率:0%
帮助的人:58万
展开全部
 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内

初始化和关闭线程你可以直接用.
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式