如何使用epplus库在excel表中的表之前获取表名。 [英] How do I get table name before table in excel sheet using epplus library.
本文介绍了如何使用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));
}
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 theDataTable
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屋!
查看全文