在C#中获取SharePoint富文本字段值

时间:2019-05-23 11:09:48

标签: c# html sharepoint-2013 web-parts

如果富文本字段包含新行,粗体,斜体,格式或任何颜色,则我文档的第一行(即富文本字段的值)将很好地导出(使用相同的格式,即项),而其余代码未在Word文档中导出。但是,如果我用记事本打开了导出的文件,则可以看到整个代码都已导出,但实际上只有第一行可见。

我尝试在Word文档中导出SharePoint列表。我在列表项中有几个富文本字段。如果富文本字段仅包含一行简单字符串,则一切都可以正常工作。

strHTMLContent.Append("<table style=margin-top: 8px; border=0 frame=hsides rules=rows cellpadding=0 cellspacing=0 width=100%>".ToString());
        //Looping through each list item in  the list
        foreach (SPListItem oListItem in collListItems)
          {
             count1++;

         strHTMLContent.Append("<tr><td>"+count1+". "+ oListItem.GetFormattedValue("DocName_Arm") + "</td></tr>");
          }
        strHTMLContent.Append("</table>".ToString());


// Giving path for saving word documents
        SPList word = (SPDocumentLibrary)oSiteCollection.AllWebs["My URL"].Lists["Mylist"];
        SPListItem item1 = word.Items[0];
        string destUrl = word.RootFolder.Url + "/" + "MyWord7" + ".doc";
        // Encoding the document to UTF8 format
        byte[] byteArray = Encoding.UTF8.GetBytes((strHTMLContent.ToString()));
        SPFile destFile = word.RootFolder.Files.Add(destUrl, byteArray, true);`

没有错误,我得到的Docname_Arm值与列表项中的格式相同,其他代码(描述的代码后我还有另一个HTML表)在Word文档中不起作用(仅当Docname_Arm具有某种格式时) ,如果效果不佳),但在记事本中可见

2 个答案:

答案 0 :(得分:0)

这对我有用,但是丢失了格式和换行符。

int id1 = (int)oListItem["ID"];
            SPListItem item = oList.GetItemById(id1);
            var eventText1Field1 = oList.Fields.GetFieldByInternalName("DocName_Arm");
            var eventText11 = item[eventText1Field1.Id];
            var eventText1Text1 = eventText1Field1.GetFieldValueAsText(eventText11);

答案 1 :(得分:0)

您可以使用GetFieldValueAsHtml获取富文本字段的html代码段:

for filename in os.listdir(directory):

if filename.endswith(".csv"):
    open(os.path.join(directory, filename))
    for csvfile in glob.glob(os.path.join('.', filename)):

        now = datetime.now().strftime('%d-%m-%y-%H;%M;%S')

        workbook = xlsxwriter.Workbook(' '+now+'.xlsx')

        worksheet = workbook.add_worksheet()

        with open(csvfile, 'rt') as f:
            reader = csv.reader(f)

else:
    for r,row in enumerate(reader):
        for i in range(59):
            r=r+i
            if r>=(i+1):
                #print(r)
                break


            #sheet.cell_value(0,r)
            for c, col in enumerate(row):

                c=c+1

                worksheet.write(r, c, col)

enter image description here

这是富文本字段的列表项数据,富文本字段是带有一些字体颜色文本的表:

enter image description here

enter image description here