溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點(diǎn)擊 登錄注冊 即表示同意《億速云用戶服務(wù)條款》

OPENXML中修改統(tǒng)計(jì)圖的注意事項(xiàng)有哪些

發(fā)布時間:2021-12-20 17:46:20 來源:億速云 閱讀:133 作者:小新 欄目:大數(shù)據(jù)

這篇文章主要為大家展示了“OPENXML中修改統(tǒng)計(jì)圖的注意事項(xiàng)有哪些”,內(nèi)容簡而易懂,條理清晰,希望能夠幫助大家解決疑惑,下面讓小編帶領(lǐng)大家一起研究并學(xué)習(xí)一下“OPENXML中修改統(tǒng)計(jì)圖的注意事項(xiàng)有哪些”這篇文章吧。

在word文檔中,可以通過excel表格,在文檔中,建立一個統(tǒng)計(jì)圖,在程序開發(fā)中,可以找到這個統(tǒng)計(jì)圖,修改一系列的數(shù)據(jù),從而達(dá)到更新統(tǒng)計(jì)圖的效果,使用openxml庫,可以達(dá)到修改數(shù)據(jù)的效果。

用解壓縮工具打開一個word文檔的示例,word文檔中包含統(tǒng)計(jì)圖,在結(jié)構(gòu)中發(fā)現(xiàn)word文檔中存儲了一個excel附件,在embeddings的文件夾中,所以修改統(tǒng)計(jì)圖的時候,一定要把此excel文件也要同步修改。

OPENXML中修改統(tǒng)計(jì)圖的注意事項(xiàng)有哪些

OPENXML中修改統(tǒng)計(jì)圖的注意事項(xiàng)有哪些

在文檔中要先找到統(tǒng)計(jì)圖的元素,在開發(fā)中,使用ChartParts,根據(jù)chart的個數(shù),選擇要修改的chart元素。

       var _chartParts = _mainDocPart.ChartParts;

找到統(tǒng)計(jì)圖的附件文件,獲取其中的excel文件,之后就是處理excel文件中的數(shù)據(jù),修改execel中的行列數(shù)據(jù),具體方法參見C#使用 OpenXML SDK讀取Excel文檔。

       var _empart = _chartParts.First().EmbeddedPackagePart;

      Stream stream = _empart.GetStream();

    using (SpreadsheetDocument ssDoc =SpreadsheetDocument.Open(stream, true))  

需要注意的是,假如統(tǒng)計(jì)圖的橫軸是以時間為單位,需要用ToOADate(OLE 自動化日期)進(jìn)行相應(yīng)的轉(zhuǎn)換,

_dateParm.ToOADate().ToString();

修改完excel后,打開word發(fā)現(xiàn)統(tǒng)計(jì)圖的數(shù)據(jù)并沒有更新,點(diǎn)擊一下編輯,統(tǒng)計(jì)圖倒是更新了,是因?yàn)榻y(tǒng)計(jì)圖中也有數(shù)據(jù)的緩存,需要同步進(jìn)行修改。

從統(tǒng)計(jì)圖找到NumericValue的值,根據(jù)循環(huán),將其中的文本進(jìn)行修改。

 LineChartSeries bs1 = _chartPart.ChartSpace.Descendants<LineChartSeries>().First();

               IEnumerable<NumericValue> _numCaches = bs1.Descendants<NumericValue>();

以上是“OPENXML中修改統(tǒng)計(jì)圖的注意事項(xiàng)有哪些”這篇文章的所有內(nèi)容,感謝各位的閱讀!相信大家都有了一定的了解,希望分享的內(nèi)容對大家有所幫助,如果還想學(xué)習(xí)更多知識,歡迎關(guān)注億速云行業(yè)資訊頻道!

向AI問一下細(xì)節(jié)

免責(zé)聲明:本站發(fā)布的內(nèi)容(圖片、視頻和文字)以原創(chuàng)、轉(zhuǎn)載和分享為主,文章觀點(diǎn)不代表本網(wǎng)站立場,如果涉及侵權(quán)請聯(lián)系站長郵箱:is@yisu.com進(jìn)行舉報(bào),并提供相關(guān)證據(jù),一經(jīng)查實(shí),將立刻刪除涉嫌侵權(quán)內(nèi)容。

AI