「Excel 2007 アドイン」を開発し、「Microsoft.Office.Interop.Excel.Application.ActiveSheet」を使用しています。別のファイルに保存するにはどうすればよいですか?
3079 次
3 に答える
1
アクティブなシートをオブジェクトに割り当ててから、Microsoft.Office.Interop.Excel.Worksheet
このオブジェクトの SaveAs メソッドを次のように呼び出す必要があります。
using System.Runtime.InteropServices;
using Excel = Microsoft.Office.Interop.Excel;
namespace ConsoleApplication2
{
class Program
{
static void Main(string[] args)
{
Excel.Application ap = new Excel.Application();
Excel.Workbook wb = ap.Workbooks.Open(@"C:\whatever.xlsx");
Excel.Worksheet ws = wb.ActiveSheet;
ws.SaveAs(@"C:\somethingelse.xlsx");
ap.Workbooks.Close();
Marshal.ReleaseComObject(ap);
}
}
}
于 2012-09-11T11:30:51.490 に答える
0
VB.NET でアクティブ シートを保存する方法を説明する投稿を見つけました。
Sub test()
ActiveSheet.Copy
ActiveWorkbook.SaveAs Filename:="C:\MyFolder\MySubFolder\Test.xls"
ActiveWorkbook.Close
End Sub
ただし、このロジックを C# で試すことができます。アクティブなシートを切り替えて、それぞれを個別に保存します。
これにより、それらが別々のワークブックに保存されます...
Sub test()
Dim iNoSheets As Integer
Dim i As Integer
iNoSheets = Worksheets.Count
For i = 1 To iNoSheets
Worksheets(i).Activate
ActiveSheet.Copy
ActiveWorkbook.SaveAs Filename:="C:\Test" & i & ".xls"
ActiveWorkbook.Close
Next
End Sub
そして今C#で:
public void SaveSheets()
{
for(int i = 0; i < Worksheets.Count; i++)
{
Worksheets[i].Activate();
ActiveSheet.Copy();
ActiveWorkbook.SaveAs(string.Format(@"C:\sheet{0}.xlsx",i));
ActiveWorkbook.Close();
}
}
于 2012-09-11T11:16:08.433 に答える