首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >在DataSet列中获取特定数据,在excel中导出

在DataSet列中获取特定数据,在excel中导出
EN

Stack Overflow用户
提问于 2015-02-05 03:01:35
回答 2查看 1.4K关注 0票数 0

我的数据集中有5列。姓名、年龄、性别、地址和联系方式:我在数据集中有3条数据

我只需要在excel输出过程中的姓名、地址和联系号码。我怎么能这么做?我使用的是使用Excel = Microsoft.Office.Interop.Excel;我只得到第一行。数据集中并非所有行

这是我获取值的代码

代码语言:javascript
运行
复制
Microsoft.Office.Interop.Excel.Application ExcelAp = new Microsoft.Office.Interop.Excel.Application();
ExcelAp.Application.Workbooks.Add(Type.Missing);
ExcelAp.Columns.ColumnWidth = 25;

int i =0;
foreach( DataRow datarow in DsNow.Tables[0].Rows)
{
      for(i = 0; DsNow.Tables[0].Rows.Count - 1; i ++)
            {
                         ExcelAp.Cells[i + 6, 1] = datarow["name"].ToString();
                         ExcelAp.Cells[i + 6, 2] =datarow["address"].ToString();
                         ExcelAp.Cells[i + 6, 3] =datarow["contactnumber"].ToString(); 
            }
} 

请帮帮忙

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2015-02-05 04:29:58

当只使用一个循环时,WHy同时使用FOREACH和FOREACH。CHeck下面的代码,只需对代码进行少量修改:

代码语言:javascript
运行
复制
int i =0;
      for(i = 0; DsNow.Tables[0].Rows.Count - 1; i ++)
            {
                  ExcelAp.Cells[i + 6, 1] = DsNow.Tables[0].Rows[i]["name"].ToString();
                  ExcelAp.Cells[i + 6, 2] = DsNow.Tables[0].Rows[i]["address"].ToString();
                  ExcelAp.Cells[i + 6, 3] = DsNow.Tables[0].Rows[i]["contactnumber"].ToString(); 
            }
票数 0
EN

Stack Overflow用户

发布于 2015-02-05 05:39:10

代码语言:javascript
运行
复制
         Public void Excel()
        {
         Microsoft.Office.Interop.Excel.Application app;
         Workbook workbook = null;
         Worksheet worksheet = null;
         Range range = null;   
         int i,j,k=1;
         app = new Microsoft.Office.Interop.Excel.Application();
         app.Visible = false;
         workbook = app.Workbooks.Add(1);
         worksheet = (Worksheet)workbook.Sheets[1];
         worksheet.Name = "Sheet1";  
         worksheet.Cells.Locked = false;

        //Column1
        j = 1;
        range = worksheet.Rows.get_Range("A" + j.ToString(), "A" + j.ToString());
        range.Font.Size = 11;
        ((Range)worksheet.Cells[j, 1]).EntireColumn.ColumnWidth = 15;
        range.Font.Bold = true;
        range.MergeCells = true;
        range.HorizontalAlignment = Constants.xlCenter;
        //Content
        worksheet.Cells[j, 1] = "Name";

        //Column2
        range = worksheet.Rows.get_Range("B" + j.ToString(), "B" + j.ToString());
        range.Font.Size = 11;
        ((Range)worksheet.Cells[j, 2]).EntireColumn.ColumnWidth = 15;
        range.Font.Bold = true;
        range.MergeCells = true;
        range.HorizontalAlignment = Constants.xlCenter;
        //Content
        worksheet.Cells[j, 2] = "Address";


        //Column3
        range = worksheet.Rows.get_Range("C" + j.ToString(), "C" + j.ToString());
        range.Font.Size = 11;
        ((Range)worksheet.Cells[j, 3]).EntireColumn.ColumnWidth = 15;
        range.Font.Bold = true;
        range.MergeCells = true;
        range.HorizontalAlignment = Constants.xlCenter;
        //Content
        worksheet.Cells[j, 3] = "Contact Number";

       //Loop
        DataTable dt = new DataTable();

        for (i = 0; i < dt.Rows.Count; i++)
       {
            //Column1
            range = worksheet.Rows.get_Range("A" + k.ToString(), "A" + k.ToString());
            worksheet.Cells[k, 1] = dt.Rows[i]["NAME"].ToString();

            //Column2
            range = worksheet.Rows.get_Range("B" + k.ToString(), "B" + k.ToString());
            worksheet.Cells[k, 2] = dt.Rows[i]["ADDRESS"].ToString();

            //Column3
            range = worksheet.Rows.get_Range("C" + k.ToString(), "C" + k.ToString());
            worksheet.Cells[k, 3] = dt.Rows[i]["CONTACT_NUMBER"].ToString();

            k = k +1;
       }

}

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/28335463

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档