R,Excel和RTF输出带空行

时间:2018-01-14 12:25:16

标签: r excel rtf

我有一个小的excel数据集,其中包含文本格式的单元格。我的代码R是对herblabel函数的修改(在https://github.com/helixcn中找到),其中每个行和单元格excel数据由函数获取并最终放入RTF输出以制作打印标签。在我的R代码中,列的格式为“DetNov1_XXXXX”或“DetNov1_XXXXX_XXXXX”,其中XXXX是其他特定单词(例如:locality,day,determinator,...)。

对于一行RTF输出,我的代码是:

    ifelse((is.na(herbdat$DetNov1_Determinateur_Lieu)), 
            paste("{\\pard\\keep\\keepn\\fi0\\li0\\qc",
                  "\\sb180", "\\sb20",
                  "\\sa20\\fs18 ",
                  ifelse(((is.na(herbdat$DetNov1_Determinateur_Date_Jour) )&
                          (is.na(herbdat$DetNov1_Determinateur_Date_Mois) )&
                          (is.na(herbdat$DetNov1_Determinateur_Date_Annee))),
                           "",
                           ifelse(((is.na(herbdat$DetNov1_Determinateur_Date_Jour))&
                                   (is.na(herbdat$DetNov1_Determinateur_Date_Mois))),
                                    paste("{\\pard\\keep\\keepn\\fi0\\li0\\qc",
                                          "\\sb180", "\\sb20",
                                          "\\sa20\\fs18 ",
                                          ifelse(is.na(herbdat$DetNov1_Determinateur_Date_Annee), "", as.character(herbdat$DetNov1_Determinateur_Date_Annee)),
                                          "", 
                                          "\\par }",sep = "")
                                          ,
                                    ifelse((is.na(herbdat$DetNov1_Determinateur_Date_Jour)),
                                            paste("{\\pard\\keep\\keepn\\fi0\\li0\\qc",
                                                  "\\sb180", "\\sb20",
                                                  "\\sa20\\fs18 ",
                                                  ifelse(is.na(herbdat$DetNov1_Determinateur_Date_Mois), "", firstletteruppercase(as.character(herbdat$DetNov1_Determinateur_Date_Mois))),
                                                  " ",
                                                  ifelse(is.na(herbdat$DetNov1_Determinateur_Date_Annee), "", as.character(herbdat$DetNov1_Determinateur_Date_Annee)),
                                                  "", 
                                                  "\\par }",sep = "")
                                                  ,
                                            paste("{\\pard\\keep\\keepn\\fi0\\li0\\qc",
                                                  "\\sb180", "\\sb20",
                                                  "\\sa20\\fs18 ",
                                                  ifelse(is.na(herbdat$DetNov1_Determinateur_Date_Jour), "", as.character(herbdat$DetNov1_Determinateur_Date_Jour)),
                                                  " ",
                                                  ifelse(is.na(herbdat$DetNov1_Determinateur_Date_Mois), "", as.character(herbdat$DetNov1_Determinateur_Date_Mois)),
                                                  " ",
                                                  ifelse(is.na(herbdat$DetNov1_Determinateur_Date_Annee), "", as.character(herbdat$DetNov1_Determinateur_Date_Annee)),
                                                  "", 
                                                  "\\par }",sep = "")
                                          )
                                 )
                        ),
                  "\\par }", sep = "")
            ,
            paste("{\\pard\\keep\\keepn\\fi0\\li0\\qc",
                  "\\sb180", "\\sb20",
                  "\\sa20\\fs18 ",
                  ifelse(is.na(herbdat$DetNov1_Determinateur_Lieu), "", as.character(herbdat$DetNov1_Determinateur_Lieu)),
                  ifelse(((is.na(herbdat$DetNov1_Determinateur_Date_Jour) )&
                          (is.na(herbdat$DetNov1_Determinateur_Date_Mois) )&
                          (is.na(herbdat$DetNov1_Determinateur_Date_Annee))),
                           "",
                           ifelse(((is.na(herbdat$DetNov1_Determinateur_Date_Jour))&
                                   (is.na(herbdat$DetNov1_Determinateur_Date_Mois))),
                                    paste("{\\pard\\keep\\keepn\\fi0\\li0\\qc",
                                          "\\sb180", "\\sb20",
                                          "\\sa20\\fs18 ",
                                          ", ",
                                          ifelse(is.na(herbdat$DetNov1_Determinateur_Date_Annee), "", as.character(herbdat$DetNov1_Determinateur_Date_Annee)),
                                          "", 
                                          "\\par }",sep = "")
                                          ,                              
                                    ifelse((is.na(herbdat$DetNov1_Determinateur_Date_Jour)),
                                            paste("{\\pard\\keep\\keepn\\fi0\\li0\\qc",
                                                  "\\sb180", "\\sb20",
                                                  "\\sa20\\fs18 ",
                                                  ", ",
                                                  ifelse(is.na(herbdat$DetNov1_Determinateur_Date_Mois), "", as.character(herbdat$DetNov1_Determinateur_Date_Mois)),
                                                  " ",
                                                  ifelse(is.na(herbdat$DetNov1_Determinateur_Date_Annee), "", as.character(herbdat$DetNov1_Determinateur_Date_Annee)),
                                                  "", 
                                                  "\\par }",sep = "")
                                                  ,
                                            paste("{\\pard\\keep\\keepn\\fi0\\li0\\qc",
                                                  "\\sb180", "\\sb20",
                                                  "\\sa20\\fs18 ",
                                                  ", ",
                                                  ifelse(is.na(herbdat$DetNov1_Determinateur_Date_Jour), "", as.character(herbdat$DetNov1_Determinateur_Date_Jour)),
                                                  " ",
                                                  ifelse(is.na(herbdat$DetNov1_Determinateur_Date_Mois), "", as.character(herbdat$DetNov1_Determinateur_Date_Mois)),
                                                  " ",
                                                  ifelse(is.na(herbdat$DetNov1_Determinateur_Date_Annee), "", as.character(herbdat$DetNov1_Determinateur_Date_Annee)),
                                                  "", 
                                                  "\\par }",sep = "")
                                         )
                                 )
                        ),
                  "\\par }", sep = "")
          ),

我不明白为什么这段代码在我的输出中添加了一个空行。例如,输出为:

enter image description here

我想要的时候:

enter image description here

错误是什么或在哪里?

代码较小时,我没有这个空白行。例如,下面两行代码中的两个不会添加额外的空白行。

    ifelse(is.na(herbdat$DetNov1_Note), 
           "",        
           paste("{\\pard\\fs1\\sl0 {\\*\\do\\dobxcolumn\\dobypara\\dodhgt\\dpline\\dpxsize5386\\dplinesolid\\dplinew5\\dplinedot} \\par}",
                 "{\\pard\\keep\\keepn\\fi0\\li0\\qj\\brsp20\\sb100\\sa50\\fs18 Note complémentaire : ", 
                  ifelse(is.na(herbdat$DetNov1_Note), "", as.character(herbdat$DetNov1_Note)), "\\par}", sep = "")
          ),
    ifelse(is.na(herbdat$DetNov1_Projet), 
           "", 
           paste("{\\pard\\keep\\keepn\\fi0\\li0\\qc\\brsp20\\sb100\\sa50\\fs18 ", as.character(herbdat$DetNov1_Projet), "\\par }", sep = "")
          ),

作为预付款,谢谢你的帮助。

0 个答案:

没有答案