Visio屬性值的轉換問題

2022-02-26 10:34:12 字數 2019 閱讀 9725

做過visio開發的人知道,visio中的屬性值也就是cell.formula的值通常包含兩對雙引號的(如""xx""), 如果要將屬性的值轉換正常的字串值,那麼需要去除雙引號。因此從visio的cell的formula值中得到的字串需要經過下面方法處理一下:

public static string formulastringtostring(string formula)

}catch (exception err)

return convertedformula;

}如果是寫入到visio的cell的formula中,那麼要經過反過程,如下所示:

public static string stringtoformulaforstring(string input)

result = input.replace(quote, (quote + quote));

result = quote + result + quote;

return result;

}2、獲取指定形狀指定cell的值。除了方法1,還有下面一種方法可以獲取cell的value值。這種方法比使用formula獲取字串的方式要好,是因為在visio2007中下拉列表「資產歸屬」.對應的cell的value可能是index(0,prop.資產歸屬.format),但是如果使用下面的方法就可以正常獲取到它具體的值了。

public static string getshapecellvalue(shape shapetarget, string strcelltype)

return shapecellvalue;

}3、給指定的shape賦值。方法2是讀取,當然還需要寫入到指定shape,指定cell的值

public static bool setshapecellvalue(shape shapetarget, string strcelltype, string cellvalue)

return true;

}4、判斷形狀某個屬性是否存在。有時候在做一些操作前,需要判斷某個屬性是否存在,以免訪問指定的cell不存在而丟擲異常。

public static bool shapecellexist(shape shapetarget, string strcelltype)

return breturn;

}5、取當前操作屬性所在的行。cell的行號有時候非常重要,因此有必要提供乙個函式獲取對應cell在shapedata中的行號。

public static int getcustomproprow(shape shapetarget, string propname)

return intcustomrow;

6、判斷visio圖紙上是否有形狀圖元存在。如果圖紙上沒有形狀圖元,你進行操作的時候可能會丟擲「請求被禁用」的異常,因此可以操作前先判斷有裝置在圖紙上為妙。

public static bool hasshapeinwindow(window window)

catch

return result;

}7、其他的一些功能設定

//visio2007的形狀視窗中去除搜尋形狀功能

visio2003的showshapesearchpane實現方式#region visio2003的showshapesearchpane實現方式

//window searchwindow = wndvisio.windows.get_itemfromid(convert.toint16(viswintypes.viswinidshapesearch));

//if (searchwindow != null)

// #endregion

//遮蔽visio2007中的動態連線的功能(預設有)

8、name和nameu屬性的差別

visio中很多屬性都有乙個同名+u的屬性名稱,一般情況下最好使用這個名稱如nameu,因此這個是乙個唯一的名字,有時候你會發現name相同,但他們就是不一樣,因為他們的nameu名稱不一樣的。

9、遇到不明白的操作或者屬性,多用visio文件的巨集記錄功能,然後對vba**進行分析和除錯。  

的屬性值問題

varstatus 可以把它當做是乙個行物件來看待,其中的屬性可以對行物件進行操作 其主要的作用是 快速定位到行級元素上面來進行操作。current當前這次迭代的 集合中的 項 index當前這次迭代從 0 開始的迭代索引 count當前這次迭代從 1 開始的迭代計數 first用來表明當前這輪迭代...

jsp中的屬性值問題

c foreach varstatus屬性 current當前這次迭代的 集合中的 項 index當前這次迭代從 0 開始的迭代索引 count當前這次迭代從 1 開始的迭代計數 first用來表明當前這輪迭代是否為第一次迭代的標誌 last用來表明當前這輪迭代是否為最後一次迭代的標誌 begin屬...

json屬性值為null時轉換

解決思路 將屬性值 null 轉換成 解決方法如下 1.經過搜尋可以用下面的方法 gson gson new gsonbuilder serializenulls create 但是這個卻無法解決反序列問題,怎麼解決呢?我在stackoverflow上找到了這個問題,親測有效 2.解決辦法如下 gs...