gpt4 book ai didi

c# - 通过 C# 在电子表格中插入工作表

转载 作者:太空狗 更新时间:2023-10-29 18:36:05 24 4
gpt4 key购买 nike

我创建了一个项目,该项目读取不同的文件,然后将电子表格放入不同的工作表中。我使用了 Open office calc 电子表格,因此使用以下代码打开一个空白文件:

public XSpreadsheet getSpreadsheet(int nIndex, XComponent xComp)
{
XSpreadsheets xSheets = ((XSpreadsheetDocument)xComp).getSheets();
XIndexAccess xSheetsIA = (XIndexAccess)xSheets;
XSpreadsheet xSheet =(XSpreadsheet)xSheetsIA.getByIndex(nIndex).Value;

return xSheet;
}

我这样调用一个工作表:

XSpreadsheet newSheet = getSpreadsheet(sheetIndex, xComp);

其中 xComp 是:

string filePathway = @"file:///c:/temp/blank.ods";  
PropertyValue[] propVals = new PropertyValue[0];
XComponent oCalcuDoc = oDesktop.loadComponentFromURL(filePathway, "_blank", 0, propVals);

但是我的问题是,文件 blank.ods 需要设置为在应用程序运行之前已经插入到电子表格中的所需页数。这并不理想,因为并不总是知道所需的纸张数量。有没有办法从我的应用程序中插入工作表?

如有任何帮助,我们将不胜感激。

最佳答案

我只是简单地查看了 OpenOffice API 并发现了这个:http://www.openoffice.org/api/docs/common/ref/com/sun/star/sheet/XSpreadsheets.html

.. 它指出接口(interface) XSpreadsheets:

provides methods to access the spreadsheets by name and to insert, copy, remove and rearrange spreadsheets.

它包括如下方法:

insertNewByName,根据 API 文档:

inserts a new sheet into the collection.

参见:http://www.openoffice.org/api/docs/common/ref/com/sun/star/sheet/XSpreadsheets.html#insertNewByName

...等等。

我绝不是 OpenOffice API 专家 - 我只是简单浏览了他们的 API 文档 - 希望这可以为您指明正确的方向。

实际上,文档中包含如何在文档中添加新工作表的示例:

 /** Inserts a new empty spreadsheet with the specified name.
@param xDocument The XSpreadsheetDocument interface of the document.
@param aName The name of the new sheet.
@param nIndex The insertion index.
@return The XSpreadsheet interface of the new sheet.
*/
public com.sun.star.sheet.XSpreadsheet insertSpreadsheet(
com.sun.star.sheet.XSpreadsheetDocument xDocument,
String aName, short nIndex ) {

// Collection of sheets
com.sun.star.sheet.XSpreadsheets xSheets = xDocument.getSheets();
com.sun.star.sheet.XSpreadsheet xSheet = null;

try {
xSheets.insertNewByName(aName, nIndex);
xSheet = xSheets.getByName( aName );
} catch (Exception ex) {
}

return xSheet;
}

示例可以在本页底部看到:http://wiki.openoffice.org/wiki/Documentation/DevGuide/Spreadsheets/Working_With_Spreadsheet_Documents

关于c# - 通过 C# 在电子表格中插入工作表,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12052150/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com