def df_prefix_excel_error_prone_text(df, columns=None):
    """Append single quote to the text(s) prone to cause Excel error.
    This will append prefix (single quote) for those text cells in the DataFrame,
    so that it won't cause error when df is converted to Excel document.
    Supported prefixing(s):
    - Texts starting with '='; that will 100% cause error.
    """
    def is_errornous(value):
        if type(value) != str: return False
        if len(value) == 0: return False
        return value[0] == '=' # or value[0] == '-'

    if columns is None:
        columns = [c for c in df.columns]
    for c in columns:
        df[c] = df[c].apply(lambda x: "'"+x if is_errornous(x) else x)