当前位置:编程学习 > C#/ASP.NET >>

对Excel的Table排序如何多线程

  Parallel.ForEach(listSheets, (xlWorkSheet1) =>
                {




                    //  Excel.Worksheet xlWorkSheet1 = (Excel.Worksheet)excelbk.Worksheets["Sheet1"];
                    xlRange = (Excel.Range)xlWorkSheet1.Cells[xlWorkSheet1.Rows.Count, 1];
                    lock (xlRange)
                    {
                        //   nRows = (long)xlRange.get_End(Excel.XlDirection.xlUp).Row;
                        nRows = xlWorkSheet1.UsedRange.Cells.Rows.Count;
                        xlRange = (Excel.Range)xlWorkSheet1.Rows["5:" + nRows, Type.Missing];
                        xlRange.Sort(xlRange.Columns[clnum1, Type.Missing], Excel.XlSortOrder.xlAscending,
                                                xlRange.Columns[clnum2, Type.Missing], Type.Missing, Excel.XlSortOrder.xlAscending,
                                                Type.Missing, Excel.XlSortOrder.xlAscending,
                                                Excel.XlYesNoGuess.xlNo, Type.Missing, Type.Missing,
                                                Excel.XlSortOrientation.xlSortColumns,
                                                Excel.XlSortMethod.xlStroke,
                                                Excel.XlSortDataOption.xlSortTextAsNumbers,
                                                Excel.XlSortDataOption.xlSortNormal,
                                                Excel.XlSortDataOption.xlSortNormal);

                        Console.WriteLine("Sheet{0} have been sorted", xlWorkSheet1.Name);
                    }
                });

如上,其中listSheets为excel的table泛型列表.
但是,每次都会说调用sort的方法已经在使用中,我尝试用lock
好像不得心啊
补充:.NET技术 ,  C#
CopyRight © 2012 站长网 编程知识问答 www.zzzyk.com All Rights Reserved
部份技术文章来自网络,