Menu
Log 在

Register

安装应用
您正在使用过期的浏览器。它可能无法正确显示此网站或其他网站。
您应该升级或使用 替代浏览器.

 如何在邮件正文中格式化表格

raushanaj5

会员
已加入
2017年4月15日
留言内容
7
编程经验
Beginner
我正在使用C#解决我的问题。
我有一个包含许多工作表的Excel文件。从"Fisrt Sheet",我正在寻找一个角色"x"它将出现在特定列的某些单元格中("x"将仅在一个特定的列中,在该列的不同单元格中)。我在寻找"x"并在通用列表中提取相应行的详细信息(并命名提取字段的标题)。现在,我必须在"tabular 对于mat"通过Outlook在邮件正文中显示。
我正在获取输出,但格式不正确。我的代码正在提取信息,但是我看不到任何表格边框,并且缺少表格标题,在该表格标题下应该填充提取的数据。
表标题信息应如下所示:
第1列-备注名称
第1栏-类型
第1栏-外部
第1栏-卖方
第1栏-仓库
标头也应为黑色,提取的详细信息应为红色。
请帮我解决我的问题

C#:
[LIST=|INDENT=1]
[*][COLOR=black][COLOR=#006699][B]using[/B][/COLOR] 系统;  [/COLOR]
[*][COLOR=black][COLOR=#006699][B]using[/B][/COLOR] System.Collections.Generic;  [/COLOR]
[*][COLOR=black][COLOR=#006699][B]using[/B][/COLOR] System.Linq;  [/COLOR]
[*][COLOR=black][COLOR=#006699][B]using[/B][/COLOR] System.Text;  [/COLOR]
[*][COLOR=black][COLOR=#006699][B]using[/B][/COLOR] System.IO;  [/COLOR]
[*][COLOR=black][COLOR=#006699][B]using[/B][/COLOR] System.Data;  [/COLOR]
[*][COLOR=black][COLOR=#006699][B]using[/B][/COLOR] Excel = Microsoft.Office.Interop.Excel;  [/COLOR]
[*][COLOR=black][COLOR=#006699][B]using[/B][/COLOR] Outlook = Microsoft.Office.Interop.Outlook;  [/COLOR]
[*][COLOR=black][COLOR=#006699][B]namespace[/B][/COLOR] xlsm  [/COLOR]
[*][COLOR=black]{  [/COLOR]
[*][COLOR=black]    [COLOR=#006699][B]class[/B][/COLOR] 新  [/COLOR]
[*][COLOR=black]    {  [/COLOR]
[*][COLOR=black]        [COLOR=#006699][B]static[/B][/COLOR] [COLOR=#006699][B]void[/B][/COLOR] Main(sting [] args)  [/COLOR]
[*][COLOR=black]        {  [/COLOR]
[*][COLOR=black]        在g   [/COLOR]
[*][COLOR=black]            [COLOR=#006699][B]long[/B][/COLOR] rCnt,cCnt;  [/COLOR]
[*][COLOR=black]            [COLOR=#006699][B]long[/B][/COLOR] 行= 0,列= 0;  [/COLOR]
[*][COLOR=black]        Excel.Application xlApp;  [/COLOR]
[*][COLOR=black]        Excel.Workbook xlWorkBook;  [/COLOR]
[*][COLOR=black]        Excel.Worksheet xlWorkSheet;  [/COLOR]
[*][COLOR=black]        Excel.Range rng;  [/COLOR]
[*][COLOR=black]        xlApp = [COLOR=#006699][B]new[/B][/COLOR] Excel.Application();  [/COLOR]
[*][COLOR=black]        xlWorkBook = xlApp.Workbooks.Open(@[COLOR=blue]"F:\Doc_Excel"[/COLOR], 0, [COLOR=#006699][B]true[/B][/COLOR], 5, [COLOR=blue]""[/COLOR], [COLOR=blue]""[/COLOR], [COLOR=#006699][B]true[/B][/COLOR],Microsoft.Office.Interop.Excel.XlPlatform.xlWindows, [COLOR=blue]"\t"[/COLOR], [COLOR=#006699][B]false[/B][/COLOR], [COLOR=#006699][B]false[/B][/COLOR], 0, [COLOR=#006699][B]true[/B][/COLOR], 1, 0);  [/COLOR]
[*][COLOR=black]        xlWorkSheet =(Excel.Worksheet)xlWorkBook.Worksheets [[COLOR=blue]"First Sheet"[/COLOR]];  [/COLOR]
[*][COLOR=black]        rng = xlWorkSheet.UsedRange;  [/COLOR]
[*][COLOR=black]        行= rng.Rows.Count;  [/COLOR]
[*][COLOR=black]        列= rng.Columns.Count;  [/COLOR]
[*][COLOR=black]        清单<Memo> lst = [COLOR=#006699][B]new[/B][/COLOR] 清单<Memo>();  [/COLOR]
[*][COLOR=black]        [COLOR=#006699][B]for[/B][/COLOR] (rCnt = 1; rCnt< rows; rCnt++)  [/COLOR]
[*][COLOR=black]        {  [/COLOR]
[*][COLOR=black]            [COLOR=#006699][B]for[/B][/COLOR] (cCnt = 1; cCnt< columns; cCnt++)  [/COLOR]
[*][COLOR=black]            {  [/COLOR]
[*][COLOR=black]                [COLOR=#006699][B]if[/B][/COLOR] (((rng.Cells [rCnt,cCnt] [COLOR=#006699][B]as[/B][/COLOR] Excel.rng).Value2!= [COLOR=#006699][B]null[/B][/COLOR])  [/COLOR]
[*][COLOR=black]                {  [/COLOR]
[*][COLOR=black]                    st =(rng.Cells [rCnt,cCnt] [COLOR=#006699][B]as[/B][/COLOR] Excel.rng).Value2.Tosting();  [/COLOR]
[*][COLOR=black]                    [COLOR=#006699][B]if[/B][/COLOR] (st == [COLOR=blue]"x"[/COLOR])  [/COLOR]
[*][COLOR=black]                    {  [/COLOR]
[*][COLOR=black]                        备忘录 ms = [COLOR=#006699][B]new[/B][/COLOR] 备忘录();  [/COLOR]
[*][COLOR=black]                        ms.MemoName =(rng.Cells [rCnt,1] [COLOR=#006699][B]as[/B][/COLOR] Excel.rng).Value2.Tosting();  [/COLOR]
[*][COLOR=black]                        ms.Type =(rng.Cells [rCnt,2] [COLOR=#006699][B]as[/B][/COLOR] Excel.rng).Value2.Tosting();  [/COLOR]
[*][COLOR=black]                        ms.Ext =(rng.Cells [rCnt,3] [COLOR=#006699][B]as[/B][/COLOR] Excel.rng).Value2.Tosting();  [/COLOR]
[*][COLOR=black]                        ms.Seller =(rng.Cells [rCnt,4] [COLOR=#006699][B]as[/B][/COLOR] Excel.rng).Value2.Tosting();  [/COLOR]
[*][COLOR=black]                        ms.Warehouse =(rng.Cells [rCnt,5] [COLOR=#006699][B]as[/B][/COLOR] Excel.rng).Value2.Tosting();  [/COLOR]
[*][COLOR=black]                        lst.Add(ms);    [/COLOR]
[*][COLOR=black]                    }  [/COLOR]
[*][COLOR=black]                }  [/COLOR]
[*][COLOR=black]            }  [/COLOR]
[*][COLOR=black]        }  [/COLOR]
[*][COLOR=black]        [COLOR=#006699][B]try[/B][/COLOR]  [/COLOR]
[*][COLOR=black]        {  [/COLOR]
[*][COLOR=black]            Outlook.Application oApp = [COLOR=#006699][B]new[/B][/COLOR] Outlook.Application();                 [/COLOR]
[*][COLOR=black]            Outlook.MailItem oMsg =(Outlook.MailItem)oApp.CreateItem(Outlook.OlItemType.olMailItem);  [/COLOR]
[*][COLOR=black]            StringBuilder sb = [COLOR=#006699][B]new[/B][/COLOR] StringBuilder();  [/COLOR]
[*][COLOR=black]            sb.Append([COLOR=blue]"<table>"[/COLOR]);  [/COLOR]
[*][COLOR=black]            [COLOR=#006699][B]foreach[/B][/COLOR] (可变行 [COLOR=#006699][B]in[/B][/COLOR] 第一)  [/COLOR]
[*][COLOR=black]           {  [/COLOR]
[*][COLOR=black]            sb.Append([COLOR=blue]"<tr>"[/COLOR]);  [/COLOR]
[*][COLOR=black]            sb.Append([COLOR=blue]"<td>"[/COLOR] + row.MemoName + [COLOR=blue]"</td>"[/COLOR]);  [/COLOR]
[*][COLOR=black]            sb.Append([COLOR=blue]"<td>"[/COLOR] +行。 [COLOR=blue]"</td>"[/COLOR]);  [/COLOR]
[*][COLOR=black]            sb.Append([COLOR=blue]"<td>"[/COLOR] + row.Ext + [COLOR=blue]"</td>"[/COLOR]);  [/COLOR]
[*][COLOR=black]            sb.Append([COLOR=blue]"<td>"[/COLOR] +行。卖方+ [COLOR=blue]"</td>"[/COLOR]);  [/COLOR]
[*][COLOR=black]            sb.Append([COLOR=blue]"<td>"[/COLOR] +行。仓库+ [COLOR=blue]"</td>"[/COLOR]);  [/COLOR]
[*][COLOR=black]            sb.Append([COLOR=blue]"</tr>"[/COLOR]);  [/COLOR]
[*][COLOR=black]           }  [/COLOR]
[*][COLOR=black]            sb.Append([COLOR=blue]"</table>"[/COLOR]);  [/COLOR]
[*][COLOR=black]            oMsg.HTMLBody = sb.ToString();  [/COLOR]
[*][COLOR=black]            oMsg.Subject = [COLOR=blue]"备注内容必填。"[/COLOR];                 [/COLOR]
[*][COLOR=black]            Outlook.Recipients oRecims =(Outlook.Recipients)oMsg.Recipients;                 [/COLOR]
[*][COLOR=black]            Outlook.Recipient oRecip =(Outlook.Recipient)oRecims.Add([COLOR=blue]"[email protected]"[/COLOR]);  [/COLOR]
[*][COLOR=black]            oRecip.Resolve();                 [/COLOR]
[*][COLOR=black]            oMsg.Send();  [/COLOR]
[*][COLOR=black]            oRecip = [COLOR=#006699][B]null[/B][/COLOR];  [/COLOR]
[*][COLOR=black]            oRecims = [COLOR=#006699][B]null[/B][/COLOR];  [/COLOR]
[*][COLOR=black]            oMsg = [COLOR=#006699][B]null[/B][/COLOR];  [/COLOR]
[*][COLOR=black]            oApp = [COLOR=#006699][B]null[/B][/COLOR];  [/COLOR]
[*][COLOR=black]        }  [/COLOR]
[*][COLOR=black]        [COLOR=#006699][B]catch[/B][/COLOR] (特例除外)  [/COLOR]
[*][COLOR=black]        {  [/COLOR]
[*][COLOR=black]        }  [/COLOR]
[*][COLOR=black]        xlWorkBook.close([COLOR=#006699][B]true[/B][/COLOR], [COLOR=#006699][B]null[/B][/COLOR], [COLOR=#006699][B]null[/B][/COLOR]);  [/COLOR]
[*][COLOR=black]        xlApp.Quit();  [/COLOR]
[*][COLOR=black]        元帅.ReleaseComObject(xlWorkSheet);  [/COLOR]
[*][COLOR=black]        元帅.ReleaseComObject(xlWorkBook);  [/COLOR]
[*][COLOR=black]        元帅.ReleaseComObject(xlApp);  [/COLOR]
[*][COLOR=black]    }          [/COLOR]
[*][COLOR=black]}  [/COLOR]
[*][COLOR=black][COLOR=#006699][B]public[/B][/COLOR] [COLOR=#006699][B]class[/B][/COLOR] 备忘录  [/COLOR]
[*][COLOR=black]{  [/COLOR]
[*][COLOR=black]    [COLOR=#006699][B]public[/B][/COLOR] [COLOR=#006699][B]string[/B][/COLOR] 备忘录Name { [COLOR=#006699][B]get[/B][/COLOR]; [COLOR=#006699][B]set[/B][/COLOR]; }  [/COLOR]
[*][COLOR=black]    [COLOR=#006699][B]public[/B][/COLOR] [COLOR=#006699][B]string[/B][/COLOR] 类型{ [COLOR=#006699][B]get[/B][/COLOR]; [COLOR=#006699][B]set[/B][/COLOR]; }  [/COLOR]
[*][COLOR=black]    [COLOR=#006699][B]public[/B][/COLOR] [COLOR=#006699][B]string[/B][/COLOR] 分机{ [COLOR=#006699][B]get[/B][/COLOR]; [COLOR=#006699][B]set[/B][/COLOR]; }  [/COLOR]
[*][COLOR=black]    [COLOR=#006699][B]public[/B][/COLOR] [COLOR=#006699][B]string[/B][/COLOR] 卖方{ [COLOR=#006699][B]get[/B][/COLOR]; [COLOR=#006699][B]set[/B][/COLOR]; }  [/COLOR]
[*][COLOR=black]    [COLOR=#006699][B]public[/B][/COLOR] [COLOR=#006699][B]string[/B][/COLOR] 仓库{ [COLOR=#006699][B]get[/B][/COLOR]; [COLOR=#006699][B]set[/B][/COLOR]; }  [/COLOR]
[*][COLOR=black]}  [/COLOR]
[/LIST]

 

金西尼

C#论坛主持人
工作人员
已加入
2011年4月23日
留言内容
3,498
地点
悉尼,澳大利亚
编程经验
10+
您已经使代码难以阅读。请以纯文本形式发布-而不是HTML或其他格式的文本-在这样的格式标记内发布:
[xcode = c#]您的代码在这里[/ xcode]
 

raushanaj5

会员
已加入
2017年4月15日
留言内容
7
编程经验
Beginner
  • 使用 系统;
  • 使用 System.Collections.Generic;
  • 使用 System.Linq;
  • 使用 System.Text;
  • 使用 System.IO;
  • 使用 System.Data;
  • 使用 Excel = Microsoft.Office.Interop.Excel;
  • 使用 Outlook = Microsoft.Office.Interop.Outlook;
  • 命名空间 xlsm
  • {
  • {
  • 静态的 虚空 Main(sting [] args)
  • {
  • 在g
  • rCnt,cCnt;
  • 行= 0,列= 0;
  • Excel.Application xlApp;
  • Excel.Workbook xlWorkBook;
  • Excel.Worksheet xlWorkSheet;
  • Excel.Range rng;
  • xlApp = Excel.Application();
  • xlWorkBook = xlApp.Workbooks.Open(@"F:\Doc_Excel", 0, 真正, 5, "", "", 真正,Microsoft.Office.Interop.Excel.XlPlatform.xlWindows, "\t", , , 0, 真正,1,0);
  • xlWorkSheet =(Excel.Worksheet)xlWorkBook.Worksheets ["First Sheet"];
  • rng = xlWorkSheet.UsedRange;
  • 行= rng.Rows.Count;
  • 列= rng.Columns.Count;
  • 清单<Memo> lst = 清单<Memo>();
  • 对于 (rCnt = 1; rCnt< rows; rCnt++)
  • {
  • 对于 (cCnt = 1; cCnt< columns; cCnt++)
  • {
  • 如果 (((rng.Cells [rCnt,cCnt] Excel.rng).Value2!= 空值)
  • {
  • st =(rng.Cells [rCnt,cCnt] Excel.rng).Value2.Tosting();
  • 如果 (st == "x")
  • {
  • 备忘录 ms = 备忘录();
  • ms.MemoName =(rng.Cells [rCnt,1] Excel.rng).Value2.Tosting();
  • ms.Type =(rng.Cells [rCnt,2] Excel.rng).Value2.Tosting();
  • ms.Ext =(rng.Cells [rCnt,3] Excel.rng).Value2.Tosting();
  • ms.Seller =(rng.Cells [rCnt,4] Excel.rng).Value2.Tosting();
  • ms.Warehouse =(rng.Cells [rCnt,5] Excel.rng).Value2.Tosting();
  • lst.Add(ms);
  • }
  • }
  • }
  • }
  • 尝试
  • {
  • Outlook.Application oApp = Outlook.Application();
  • Outlook.MailItem oMsg =(Outlook.MailItem)oApp.CreateItem(Outlook.OlItemType.olMailItem);
  • StringBuilder sb = StringBuilder();
  • sb.Append("<table>");
  • 前言 (可变行 第一)
  • {
  • sb.Append("<tr>");
  • sb.Append("<td>" + row.MemoName + "</td>");
  • sb.Append("<td>" +行。 "</td>");
  • sb.Append("<td>" + row.Ext + "</td>");
  • sb.Append("<td>" +行。卖方+ "</td>");
  • sb.Append("<td>" +行。仓库+ "</td>");
  • sb.Append("</tr>");
  • }
  • sb.Append("</table>");
  • oMsg.HTMLBody = sb.ToString();
  • oMsg.Subject = "备注内容必填。";
  • Outlook.Recipients oRecims =(Outlook.Recipients)oMsg.Recipients;
  • Outlook.Recipient oRecip =(Outlook.Recipient)oRecims.Add("[email protected]");
  • oRecip.Resolve();
  • oMsg.Send();
  • oRecip = 空值;
  • oRecims = 空值;
  • oMsg = 空值;
  • oApp = 空值;
  • }
  • 抓住 (特例除外)
  • {
  • }
  • xlWorkBook.close(真正, 空值, 空值);
  • xlApp.Quit();
  • 元帅.ReleaseComObject(xlWorkSheet);
  • 元帅.ReleaseComObject(xlWorkBook);
  • 元帅.ReleaseComObject(xlApp);
  • }
  • }
  • 上市 备忘录
  • {
  • 上市 备忘录Name { 得到; ; }
  • 上市 类型{ 得到; ; }
  • 上市 分机{ 得到; ; }
  • 上市 卖方{ 得到; ; }
  • 上市 仓库{ 得到; ; }
  • }
 

raushanaj5

会员
已加入
2017年4月15日
留言内容
7
编程经验
Beginner
现在,我可以制作表并将提取的数据填充到行中,但无法创建列标题。请帮助我制作列标题,并将列标题设为黑色,将其他提取的数据设为红色。
表标题信息应如下所示:
第1列-备注名称
第2栏-类型
第3栏-外部
第4栏-卖方
第5栏-仓库

    使用 系统;
    使用 System.Collections.Generic;
    使用 System.Linq;
    使用 System.Text;
    使用 System.IO;
    使用 System.Data;
    使用 Excel = Microsoft.Office.Interop.Excel;
    使用 Outlook = Microsoft.Office.Interop.Outlook;
 
    命名空间 xlsm
    {
        类 新
        {
            静态的 虚空 Main(sting [] args)
            {
            在g 
                长 rCnt,cCnt;
                长 行= 0,列= 0;
 
            Excel.Application xlApp;
            Excel.Workbook xlWorkBook;
            Excel.Worksheet xlWorkSheet;
            Excel.Range rng;
 
            xlApp = 新 Excel.Application();
            xlWorkBook = xlApp.Workbooks.Open(@"F:\Doc_Excel", 0, 真正, 5, "", "", 真正,Microsoft.Office.Interop.Excel.XlPlatform.xlWindows, "\t", 假, 假, 0, 真正, 1, 0);
            xlWorkSheet =(Excel.Worksheet)xlWorkBook.Worksheets ["First Sheet"];
 

            rng = xlWorkSheet.UsedRange;
            行= rng.Rows.Count;
            列= rng.Columns.Count;
 
            清单<Memo> lst = 新 清单<Memo>();
 
            对于 (rCnt = 1; rCnt< rows; rCnt++)
            {
                对于 (cCnt = 1; cCnt< columns; cCnt++)
                {
 
                    如果 (((rng.Cells [rCnt,cCnt] 如 Excel.rng).Value2!= 空值)
                    {
                        st =(rng.Cells [rCnt,cCnt] 如 Excel.rng).Value2.Tosting();
                        如果 (st == "x")
                        {
                            备忘录 ms = 新 备忘录();
 
                            ms.MemoName =(rng.Cells [rCnt,1] 如 Excel.rng).Value2.Tosting();
                            ms.Type =(rng.Cells [rCnt,2] 如 Excel.rng).Value2.Tosting();
                            ms.Ext =(rng.Cells [rCnt,3] 如 Excel.rng).Value2.Tosting();
                            ms.Seller =(rng.Cells [rCnt,4] 如 Excel.rng).Value2.Tosting();
                            ms.Warehouse =(rng.Cells [rCnt,5] 如 Excel.rng).Value2.Tosting();
                            lst.Add(ms);  
 
                        }
                    }
 
                }
            }
 
            尝试
            {
 
                Outlook.Application oApp = 新 Outlook.Application();               
                Outlook.MailItem oMsg =(Outlook.MailItem)oApp.CreateItem(Outlook.OlItemType.olMailItem);
                var sb = 新 StringBuilder();
                sb.AppendLine("<head><style> 表 {font-family: arial, sans-serif; border-collapse: collapse; width: 100%;} " +                    "td, th {border: 1px solid #dddddd;text-align: left; padding: 8px;} </style></head>");
                sb.AppendLine("<body>");
                sb.AppendLine("<table>");
                前言 (可变行 在 第一)
               {
                sb.Append("<tr>");
                sb.Append("<td>" + row.MemoName + "</td>");
                sb.Append("<td>" +行。 "</td>");
                sb.Append("<td>" + row.Ext + "</td>");
                sb.Append("<td>" +行。卖方+ "</td>");
                sb.Append("<td>" +行。仓库+ "</td>");
                sb.Append("</tr>");
               }
                sb.AppendLine("</table>");                sb.AppendLine("</body>");
                oMsg.HTMLBody = sb.ToString();
                oMsg.Subject = "备注内容必填。";               
                Outlook.Recipients oRecims =(Outlook.Recipients)oMsg.Recipients;               
                Outlook.Recipient oRecip =(Outlook.Recipient)oRecims.Add("[email protected]");
                oRecip.Resolve();               
                oMsg.Send();
 
                oRecip = 空值;
                oRecims = 空值;
                oMsg = 空值;
                oApp = 空值;
            }
            抓住 (特例除外)
            {
            }
            xlWorkBook.close(true, 空值, 空值);
            xlApp.Quit();
 
            元帅.ReleaseComObject(xlWorkSheet);
            元帅.ReleaseComObject(xlWorkBook);
            元帅.ReleaseComObject(xlApp);
        }        
 
    }
    上市 类 备忘录
    {
        上市 串 备忘录Name { 得到; 组; }
        上市 串 类型{ 得到; 组; }
        上市 串 分机{ 得到; 组; }
        上市 串 卖方{ 得到; 组; }
        上市 串 仓库{ 得到; 组; }
    }
 

金西尼

C#论坛主持人
工作人员
已加入
2011年4月23日
留言内容
3,498
地点
悉尼,澳大利亚
编程经验
10+
我说过将您的代码以纯文本形式发布在代码格式标记中。首先,您将其发布为代码格式化标签内的格式化文本,然后将其发布为不包含代码格式化标签的纯文本。那不是一个很好的记录。我已经编辑了您的最后一个代码段,以便正确发布。请看一下,以便将来可以正确发布代码段。如果我们能够轻松阅读您的代码,那么您更有可能获得所需的帮助,所以这是出于您自己的需要。
 
最佳 底部