2011-06-06 42 views
0

我有一個C#中的代碼,需要在Java中使用或轉換。 它是使用對Word 12.0對象庫的引用的代碼。使用Java中的C#代碼

這裏開始的C#代碼:

using System; using System.Collections.Generic; using System.Linq; using System.Text; using Microsoft.Office.Interop.Word; 如何,我可以使用C#中的Java或我怎麼能重寫代碼枝條從C#到Java的參考?

謝謝

+0

你不能用Java編寫C#,反之亦然。他們是完全不同的語言。 – msarchet 2011-06-06 14:22:48

+0

Linq?可能會很難,因爲Java沒有linq。 – 2011-06-06 14:58:27

回答

0

你可以使用一個工具,如http://www.cs2j.com/

不過我建議你學習C#和Java之間的差異,並重新寫自己的庫 - 或找一個類似已經存在,請。

+0

我認爲最簡單的想法是重寫,但我不知道如何做到這一點。 – Ophelie 2011-06-06 14:38:44

3

Apache POI - the Java API for Microsoft Documents

Apache的POI項目的使命是 創建和維護的Java API 基於的Office Open XML操縱各種文件格式 標準(OOXML)和微軟的OLE 2複合文檔格式(OLE2)。在 簡而言之,您可以使用Java讀取和寫入MS Excel 文件。另外,你可以用 讀寫MS Word和MS 使用Java的PowerPoint文件。 Apache POI是您的Java Excel解決方案(適用於 Excel 97-2008)。

+0

Apache POI在docx,xslx和pptx中存在一些問題。 – Ophelie 2011-06-06 14:37:41

1

要轉換代碼,您可以使用slandau提到的轉換器。您可以爲Word互操作使用多種解決方案。 Apache POI就是其中之一。另一個是OpenOffice。另一個是docx4j

這些解決方案的好處是您不需要安裝Microsoft Word來使用它們(與您在C#中的現有互操作代碼不同)。如果您想直接使用MS Word,也可以使用JACOB and COM。如果你想保持簡單並使用你的C#代碼,你最好在C#中編寫一個控制檯應用程序,並使用Java將參數傳遞給它(或者你可以寫一個web服務although Word interop in a web service gets tricky)。

+0

我試過那三個庫,你的動作。 Apache POI的問題是它不支持pptx,而使用OpenOffice時,我在格式上遇到了一些問題。和docx4j一樣,它也是一樣的。所以我在想,使用MSOffice,格式將是完美的。 – Ophelie 2011-06-06 14:52:09

+0

不幸的是,沒有一個Java庫是完美的。如果您有特定要求,您可以隨時手動打開pptx文件。它只是一個帶有XML的zip文件,所以你可以理論上手動更新它。否則,您可能必須使用COM interop或將C#代碼作爲控制檯應用程序調用。 – hross 2011-06-06 14:57:08