如何将多个数据表添加到工作簿单页 [英] How to add multiple datatables to work book single sheet

查看:88
本文介绍了如何将多个数据表添加到工作簿单页的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

 SHIFT HANK PROD UPTOPROD亏空ENERGY 
SHIFT 1 434.106 1761.373 13020.896 229.627 3755.72
SHIFT 2 444.589 1804.415 13685.928 136.785 3815.104
SHIFT 3 347.878 1407.073 11670.846 191.327 2977.936

SHIFT HANK PROD UPTOPROD亏空ENERGY
SHIFT 1个434.106 1761.373 13020.896 3755.72
SHIFT 2 444.589 1804.415 13685.928 3815.104
SHIFT 3 347.878 1407.073 11670.846 2977.936

SHIFT HANK PROD UPTOPROD亏空ENERGY
SHIFT 1个434.106 1761.372 13020.896 3755.72
SHIFT 2 444.589 1804.415 3815.104 13685.928
SHIFT 3 347.878 1407.073 2977.936 11670.846



这里显示3个数据表数据,我想要单个表格中的3个数据表数据



我尝试过:



< pre> using(wb = new XLWorkbook())
{
wb.Worksheets.Add(ds_temp_table);
using(MemoryStream memoryStream = new MemoryStream())
{
var excelApp = new Microsoft.Office.Interop.Excel.Application();
excelApp.Visible = true;
excelApp.Workbooks.Add();
Microsoft.Office.Interop.Excel._Worksheet workSheet = excelApp.ActiveSheet;


workSheet.Cells [1,1] =+ ds_temp_table.DataSetName;
workSheet.Cells [1,1] .Style.Font.Bold = true;
workSheet.Cells [2,1] .Value =客户名称:+ MillName;
workSheet.Cells [2,1] .Style.Font.Bold = true;
workSheet.Cells [3,1] .Value =Shift:+ shift;
workSheet.Cells [3,1] .Style.Font.Bold = true;
if(type == ReportType25)
{
workSheet.Cells [4,1] .Value =Date:+ sPresentStarttime.ToString(dd-MM-yyyy);
}
else
{
workSheet.Cells [4,1] .Value =Date:+ DateTime.Now.ToString(dd-MM-yyyy); //sPresentStarttime.ToString(\"dd-MM-yyyy);
}
workSheet.Cells [4,1] .Style.Font.Bold = true;

int z = 5;

for(int x = 0; x< ds_temp_table.Tables.Count; x ++)
{
for(int i = 0; i< ds_temp_table.Tables [x ] .Columns.Count; i ++)
{
string name = ds_temp_table.Tables [x] .Columns [i] .Caption;
workSheet.Cells [z,i + 1] = ds_temp_table.Tables [x] .Columns [i] .Caption;
}
z ++;
for(int i = 0; i< ds_temp_table.Tables [x] .Rows.Count; i ++)
{
for(int j = 0; j< ds_temp_table.Tables [ x] .Columns.Count; j ++)
{
workSheet.Cells [z,j + 1] = ds_temp_table.Tables [x] .Rows [i] [j] .ToString();
}
z ++;
}
// wb.Worksheets.Add(ds_temp_table.Tables [x]);
}


wb.SaveAs(memoryStream);
byte [] bytes = memoryStream.ToArray();
memoryStream.Position = 0;
memoryStream.Close();


if(CC_1!= string.Empty)
{
_obj_CC_list.Add(CC_1);
}
if(CC_2!= string.Empty)
{
_obj_CC_list.Add(CC_2);
}

string User_name = _dt_Email_Setting.Rows [0] [User_name]。ToString();
string Password = _dt_Email_Setting.Rows [0] [Password]。ToString();
string Host_Name = _dt_Email_Setting.Rows [0] [Host_Name]。ToString();
string Sender = _dt_Email_Setting.Rows [0] [Sender]。ToString();
int Port_No = Convert.ToInt16(_dt_Email_Setting.Rows [0] [Port_No]);

MailMessage MailMessage = new MailMessage();
MailAddress fromAddress = new MailAddress(Sender);
MailMessage.From = fromAddress;
foreach(_obj_To_list中的字符串电子邮件)
{
MailMessage.To.Add(email);
}

if(type == ReportType25)
{
MailMessage.Subject = ds_temp_table.DataSetName +_ Report;
}
else
{
MailMessage.Subject = dt_report.DataSetName +_ Report;
}
string Body_Details =+ MillName +< / b>+ Environment.NewLine;

// Body_Details + =+ Dept_Name +,+ Environment.NewLine;

Body_Details + =+ shift +。 + Environment.NewLine;
MailMessage.Body = Body_Details;
foreach(_obj_CC_list中的字符串_CC_list)
{
MailMessage.CC.Add(_CC_list);
}

MailMessage.Attachments.Add(新附件(新的MemoryStream(字节),sPresentStarttime.ToString(dd-MM-yyyy)+_+ ds_temp_table.DataSetName + _+ shift +。xlsx,application / vnd.openxmlformats-officedocument.spreadsheetml.sheet));



MailMessage.IsBodyHtml = true;
SmtpClient smtp = new SmtpClient();

smtp.Host = Host_Name;
smtp.EnableSsl = true;
System.Net.NetworkCredential credentials = new System.Net.NetworkCredential();
credentials.UserName = User_name;
credentials.Password =密码;
smtp.UseDefaultCredentials = true;
smtp.Credentials =凭证;
smtp.Port = Port_No;
ServicePointManager.ServerCertificateValidationCallback = delegate(对象s,X509Certificate证书,X509Chain链,SslPolicyErrors sslPolicyErrors)
{return true; };
smtp.Send(MailMes



}}

解决方案

尝试使用此



NuGet Gallery | ClosedXML 0.93.1 [ ^ ]

SHIFT   HANK	  PROD	         UPTOPROD	SHORTFALL	ENERGY
SHIFT 1	434.106	1761.373	13020.896	229.627	        3755.72
SHIFT 2	444.589	1804.415	13685.928	136.785 	3815.104
SHIFT 3	347.878	1407.073	11670.846	191.327	        2977.936

SHIFT	HANK	PROD	UPTOPROD	SHORTFALL	ENERGY
SHIFT 1	434.106	1761.373	13020.896		3755.72
SHIFT 2	444.589	1804.415	13685.928		3815.104
SHIFT 3	347.878	1407.073	11670.846		2977.936

SHIFT	HANK	PROD	UPTOPROD	SHORTFALL	ENERGY
SHIFT 1	434.106	1761.372	13020.896		3755.72
SHIFT 2	444.589	1804.415	13685.928		3815.104
SHIFT 3	347.878	1407.073	11670.846		2977.936


here 3 datatable data displaying, i want above 3 datatable data in Single sheet

What I have tried:

<pre>using (wb = new XLWorkbook())
                                    {
                                        wb.Worksheets.Add(ds_temp_table);
                                        using (MemoryStream memoryStream = new MemoryStream())
                                        {                                           
                                            var excelApp = new Microsoft.Office.Interop.Excel.Application();
                                            excelApp.Visible = true;
                                            excelApp.Workbooks.Add();
                                            Microsoft.Office.Interop.Excel._Worksheet workSheet = excelApp.ActiveSheet;
                                         
                                            
                                            workSheet.Cells[1, 1] = " " + ds_temp_table.DataSetName;
                                            workSheet.Cells[1, 1].Style.Font.Bold = true;
                                            workSheet.Cells[2, 1].Value = "Customer Name : " + MillName;
                                            workSheet.Cells[2, 1].Style.Font.Bold = true;
                                            workSheet.Cells[3, 1].Value = "Shift : " + shift;
                                            workSheet.Cells[3, 1].Style.Font.Bold = true;
                                            if (type == ReportType25)
                                            {
                                                workSheet.Cells[4, 1].Value = "Date : " + sPresentStarttime.ToString("dd-MM-yyyy");
                                            }
                                            else
                                            {
                                                workSheet.Cells[4, 1].Value = "Date : " + DateTime.Now.ToString("dd-MM-yyyy"); //sPresentStarttime.ToString("dd-MM-yyyy");
                                            }
                                            workSheet.Cells[4, 1].Style.Font.Bold = true;

                                            int z = 5;

                                            for (int x = 0; x < ds_temp_table.Tables.Count; x++)
                                            {
                                                for (int i = 0; i < ds_temp_table.Tables[x].Columns.Count; i++)
                                                {
                                                    string name = ds_temp_table.Tables[x].Columns[i].Caption;
                                                    workSheet.Cells[z, i + 1] = ds_temp_table.Tables[x].Columns[i].Caption;
                                                }
                                                z++;
                                                for (int i = 0; i < ds_temp_table.Tables[x].Rows.Count; i++)
                                                {
                                                    for (int j = 0; j < ds_temp_table.Tables[x].Columns.Count; j++)
                                                    {
                                                        workSheet.Cells[z, j + 1] = ds_temp_table.Tables[x].Rows[i][j].ToString();
                                                    }
                                                    z++;
                                                }
                                               // wb.Worksheets.Add(ds_temp_table.Tables[x]);
                                            }

                                            
                                            wb.SaveAs(memoryStream);
                                            byte[] bytes = memoryStream.ToArray();
                                            memoryStream.Position = 0;
                                            memoryStream.Close();


                                            if (CC_1 != string.Empty)
                                            {
                                                _obj_CC_list.Add(CC_1);
                                            }
                                            if (CC_2 != string.Empty)
                                            {
                                                _obj_CC_list.Add(CC_2);
                                            }

                                            string User_name = _dt_Email_Setting.Rows[0]["User_name"].ToString();
                                            string Password = _dt_Email_Setting.Rows[0]["Password"].ToString();
                                            string Host_Name = _dt_Email_Setting.Rows[0]["Host_Name"].ToString();
                                            string Sender = _dt_Email_Setting.Rows[0]["Sender"].ToString();
                                            int Port_No = Convert.ToInt16(_dt_Email_Setting.Rows[0]["Port_No"]);

                                            MailMessage MailMessage = new MailMessage();
                                            MailAddress fromAddress = new MailAddress(Sender);
                                            MailMessage.From = fromAddress;
                                            foreach (string email in _obj_To_list)
                                            {
                                                MailMessage.To.Add(email);
                                            }

                                            if (type == ReportType25)
                                            {
                                                MailMessage.Subject = ds_temp_table.DataSetName + "_Report";
                                            }
                                            else
                                            {
                                                MailMessage.Subject = dt_report.DataSetName + "_Report";
                                            }
                                            string Body_Details = "" + MillName + " </ b > " + Environment.NewLine;

                                            //Body_Details += "  " + Dept_Name + "," + Environment.NewLine;

                                            Body_Details += "  " + shift + "." + Environment.NewLine;
                                            MailMessage.Body = Body_Details;
                                            foreach (string _CC_list in _obj_CC_list)
                                            {
                                                MailMessage.CC.Add(_CC_list);
                                            }
                                         
                                                MailMessage.Attachments.Add(new Attachment(new MemoryStream(bytes), sPresentStarttime.ToString("dd-MM-yyyy") + "_" + ds_temp_table.DataSetName + "_" + shift + ".xlsx", "application/vnd.openxmlformats-officedocument.spreadsheetml.sheet"));
                                    
                                           

                                            MailMessage.IsBodyHtml = true;
                                            SmtpClient smtp = new SmtpClient();

                                            smtp.Host = Host_Name;
                                            smtp.EnableSsl = true;
                                            System.Net.NetworkCredential credentials = new System.Net.NetworkCredential();
                                            credentials.UserName = User_name;
                                            credentials.Password = Password;
                                            smtp.UseDefaultCredentials = true;
                                            smtp.Credentials = credentials;
                                            smtp.Port = Port_No;
                                            ServicePointManager.ServerCertificateValidationCallback = delegate (object s, X509Certificate certificate, X509Chain chain, SslPolicyErrors sslPolicyErrors)
                                            { return true; };
                                            smtp.Send(MailMes


}}

解决方案

try using this

NuGet Gallery | ClosedXML 0.93.1[^]


这篇关于如何将多个数据表添加到工作簿单页的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

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