要导出数据格式为Excel,现在是行是用数字(1,2,3,4...)表示的,可以用循环赋值(for(int i=0;i<10;i++)).列是(A,B,...AH..),那怎么样才能像行一样用循环赋值?

解决方案 »

  1.   

     一样的阿,也是用1,2,3.....来循环。看下面的例子worksheet.Cells[1, i+1] = col.ColumnName;中j就表示列/// <summary>
            /// 将DataTable数据导入EXCEL
            /// </summary>
            /// <param name="dt">DataTable</param>
            /// <param name="strExcelFile">Excel路径</param>
            /// <param name="strError"></param>
            /// <returns>
            ///    -1 不成功
            ///    0 成功导入        /// </returns>
            public static int DataTableToExcel(System.Data.DataTable dt,
                string strExcelFileName,
                out string strError)
            {
                strError = "";
                int nRet = 0;            Excel.Application xlApp = new Excel.Application();
                Excel.Workbooks workbooks = xlApp.Workbooks;
                Excel.Workbook workbook = workbooks.Add(Excel.XlWBATemplate.xlWBATWorksheet);
                Excel.Worksheet worksheet = (Excel.Worksheet)workbook.Worksheets[1];            for (int i = 0; i < dt.Columns.Count; i++)
                {
                    DataColumn col = dt.Columns[i];
                    worksheet.Cells[1, i+1] = col.ColumnName;
                }            for (int i = 0; i < dt.Rows.Count; i++)
                {
                    DataRow row = dt.Rows[i];
                    for (int j = 0; j < dt.Columns.Count; j++)
                    {
                        worksheet.Cells[i+2, j+1] = row[j].ToString().Trim();
                    }
                }            worksheet.Columns.EntireColumn.AutoFit();
                workbook.Saved = true;
                workbook.SaveCopyAs(strExcelFileName);
                 xlApp.Quit();
                return 0;
            }
      

  2.   

    Excel.Application myExcel = new Excel.Application();
                myExcel.Application.Workbooks.Add(true);
                //This part used for only write values which values come from here
                myExcel.Cells[1, 1] = "Li";
                myExcel.Cells[1, 2] = "Xin";
                myExcel.Cells[2, 1] = "Love";
                myExcel.Cells[3, 1] = "Liao";
                myExcel.Cells[3, 2] = "Sheng";
                myExcel.Cells[3, 3] = "Hui";
                
                //This part is used for write values which values come from datagrid
                //for (int i = 1; i < 9; i++)
                //{
                //    for (int j = 1; j < 5; j++)
                //    {
                //        myExcel.Cells[i, j] = Convert.ToInt32(this.DataGrid1[i, j].ToString()) + 1000;
                //    }
                //}
                //myExcel.Save(@"myExcel.xls");
                myExcel.Save(@"C:\FuckYou.xls");
                myExcel.Visible = true;
                //myExcel.Quit();这里的代码和注释的代码楼主都可以看一下,注释了的是用DATAGRID里的给EXCEL的CELL循环写如.而没有注释了的代码是硬码写入CELL的值.道理是一样的.呵呵.希望能有用:)
      

  3.   

    你导为Excel时,他自己会自动在Excel中给你加上每行的编号的啊.. 
      

  4.   

    建议你看看我帮另外一个朋友解决问题贴的代码http://topic.csdn.net/u/20071127/20/e3c5b1dd-5ad9-4f36-b588-6a5ead8e4ba6.html偶的ID是ppwyw,觉得对路的话给分吧。