如何使用epplus库在excel表中的表之前获取表名。 [英] How do I get table name before table in excel sheet using epplus library.

查看:111
本文介绍了如何使用epplus库在excel表中的表之前获取表名。的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

我正在使用c#中的epplus库将数据表导出到excel但是我无法在excel文件中将表名或任何其他信息附加到表格上方的文本中。

其实我的代码将6个存储过程导出到单个excel表,我希望每个表都有其唯一的名称,如每个表的顶部。

感谢您的帮助。



我尝试过:



 ExcelPackage package = new ExcelPackage (); 
var worksheet = package.Workbook.Worksheets.Add(ExcelSheet);
worksheet.View.ShowGridLines = false;
int z = 1;
for(int x = 0; x< ds.Tables.Count; x ++)
{
var names = worksheet.Tables.Add(ds.Tables.Count,ge);
int r = z;
int t = r + 1;
for(int i = 1; i< ds.Tables [x] .Columns.Count + 1; i ++)
{
worksheet.Cells [r,i] .Value = ds .Tables [x] .Columns [i - 1] .ToString();
}
for(int i = 0; i< ds.Tables [x] .Rows.Count; i ++)
{
for(int j = 0; j< ; ds.Tables [x] .Columns.Count; j ++)
{
worksheet.Cells [i + t,j + 1] .Value = ds.Tables [x] .Rows [i]
[j] .ToString();
}
}
z + = ds.Tables [x] .Rows.Count + 4;



这是我的epplus代码。

解决方案

对之前发布的解决方案稍作修改

DataTable 中声明表的标题为

 DataTable dt = new DataTable( 表名1); //在创建DataTable时声明表名
DataTable dt1 = new DataTable(表名2); //在创建DataTable时声明表名
DataTable dt2 = new DataTable(表名 3); //在创建DataTable时声明表名





并在Cell中更新如下,参考内联评论

使用(ExcelPackage package = new ExcelPackage())
{
ExcelWorksheet ws = package.Workbook.Worksheets.Add(Your Sheet Name );
int rowNumber = 1;
foreach(ds.Tables中的DataTable dtTemp)
{
ws.Cells [A+ rowNumber] .Value = dtTemp.TableName; //将它写在表格的顶部
ws.Cells [A+(rowNumber +1)]。LoadFromDataTable(dtTemp,true);
rowNumber + = dtTemp.Rows.Count + 2; //创建2个空行
}

package.SaveAs(new FileInfo(@D:\Projects\CPTemp\CPTemp\TextFile.xlsx));
}



更多信息请参考 EPPLUS文档 [ ^


I am exporting the datatable to excel using epplus library in c# but i am not able to attach the table name or any other information as text as above the table in excel file.
Actually my code exporting 6 stored procedures to single excel sheet and i want that every table has its unique name as on the top of every table.
Thanks for helping.

What I have tried:

ExcelPackage package = new ExcelPackage();
           var worksheet = package.Workbook.Worksheets.Add("ExcelSheet");
           worksheet.View.ShowGridLines = false;
           int z = 1;
           for (int x = 0; x < ds.Tables.Count; x++)
           {
               var names = worksheet.Tables.Add(ds.Tables.Count, ge);
               int r = z;
               int t = r + 1;
               for (int i = 1; i < ds.Tables[x].Columns.Count + 1; i++)
               {
                   worksheet.Cells[r, i].Value = ds.Tables[x].Columns[i - 1].ToString();
               }
               for (int i = 0; i < ds.Tables[x].Rows.Count; i++)
               {
                   for (int j = 0; j < ds.Tables[x].Columns.Count; j++)
                   {
                       worksheet.Cells[i + t, j + 1].Value = ds.Tables[x].Rows[i]
                       [j].ToString();
                   }
               }
               z += ds.Tables[x].Rows.Count + 4;


This is my epplus code.

解决方案

Slight modification to the Solution posted earlier
Declare the Title of the Table in the DataTable as

DataTable dt = new DataTable("Table Name 1");  // declare the Table Name when creating the DataTable
 DataTable dt1 = new DataTable("Table Name 2");// declare the Table Name when creating the DataTable
DataTable dt2 = new DataTable("Table Name 3");// declare the Table Name when creating the DataTable



and update in the Cell as below, refer the in-line comments

using (ExcelPackage package = new ExcelPackage())
            {
                ExcelWorksheet ws = package.Workbook.Worksheets.Add("Your Sheet Name");
                int rowNumber = 1;
                foreach (DataTable dtTemp in ds.Tables)
                {
                    ws.Cells["A" + rowNumber].Value = dtTemp.TableName;  // write it on top of the table 
                    ws.Cells["A" + ( rowNumber +1)].LoadFromDataTable(dtTemp, true);
                    rowNumber += dtTemp.Rows.Count + 2; // to create 2 empty rows
                }

                package.SaveAs(new FileInfo(@"D:\Projects\CPTemp\CPTemp\TextFile.xlsx"));
            }


for more info refer EPPLUS documentation[^]


这篇关于如何使用epplus库在excel表中的表之前获取表名。的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆