2011-06-01 56 views
0

我需要根據管理提供的給定模式從我的應用程序生成MS Excel 2007+文件。大部分工作已經完成,但我必須將列寬設置爲11.34釐米。我嘗試使用setColumnWidth(int columnIndex, int width)方法,但不管我提供的值如何都不起作用。 JavaDoc的說:是否可以使用Apache POI API設置XSSF工作表的列寬?

設置寬度(在1/256一個字符寬度的單位)

用於單個細胞的最大列寬爲255個字符。此值表示可以使用標準字體格式化的單元格中顯示的字符數。

如何做到這一點?

+0

您是否檢查過以確保列未被設置爲自動自動調整大小?確保你沒有在你的代碼中執行這個調用,'sheet.autoSizeColumn(columnIndex);' – 2011-06-01 13:07:31

+0

嗨,我還沒有在我的代碼中發現任何類似的調用。我想知道是否有一種方法可以將釐米轉換爲「字符寬度」而不是?或者這沒有意義,無論如何? – gtludwig 2011-06-01 16:55:21

回答

0

其實,我從錯誤的開始就誤會了!我的(糟糕!)不好!寬度列已被設置,但不認爲!所有這一切都是作爲一個簡單的「三條規則」,而我確定了。

+0

@maple_shaft感謝您的時間和幫助 – gtludwig 2011-06-03 11:57:59

1

好的,我想我現在明白你的問題了,你的業務需求狀態是你必須根據標準的Excel字體字符寬度來設置列的寬度。

我會這樣做的方式是在Excel中的示例中使用Print Screen鍵,然後粘貼到Paint或類似程序中並計算像素寬度。然後,我將使用標尺工具來測量像素/ cm,並將結果數字用作固定列寬。

這可能會涉及到一點點的試驗和錯誤,以得到正確的答案。

現在,我將分享我的個人意見,我覺得這是一個懶惰和衰弱的業務需求。什麼是「標準字體」?哪個版本的Excel?這個要求對開發人員的解釋是完全可以接受的。

+0

我用來構建工作表佈局的方法是[鏈接] http://pastebin.com/iaqWhHg6 [/ link]。但是,我的要求是製作輸出,因此我的經理可以將生成的格式化的一組列複製粘貼到董事會的報告中。目前的標準是這樣的一個colums更大(代碼沒有反映這一點),但我需要以編程方式設置列的寬度。 – gtludwig 2011-06-01 17:29:23

相關問題