2009-07-04 15 views
1

スプレッドシート名(タブの下の名前)のみ印刷できますか? 私はCDの上に何があるのか​​、コンポーザー、指揮者、動き、時代など、500以上のプレゼンテーションシートを持ったワークブックを持っています。ワークブックの全部ではなく、すべての部分の名前です。 はい、私はAccessでこれを行うよりはるかに多いはずですが、64年前にCommidoreで開始しています。最新バージョンはExcel 2007です。したがって、Accessで行われた「3Dデータベース」ではなく、スプレッドシートを使用して行われた「2Dデータベース」です。 多くの人に感謝します。ブック内のすべてのスプレッドシート名を印刷

+1

.NETのVBAを使用していますか? – bendewey

答えて

1

Spreadsheet::ParseExcelモジュールがインストールされているPerlを使用してこれを行うことができます。

use Spreadsheet::ParseExcel; 
use strict; 

my $filename = shift || "Book1.xls"; 
my $e = new Spreadsheet::ParseExcel; 
my $eBook = $e->Parse($filename); 
my $sheets = $eBook->{SheetCount}; 
my ($eSheet, $sheetName); 

foreach my $sheet (0 .. $sheets - 1) { 
    $eSheet = $eBook->{Worksheet}[$sheet]; 
    $sheetName = $eSheet->{Name}; 
    print "Worksheet $sheet: $sheetName\n"; 
} 
+0

ParseExcelを使用すると、個別のシートを実行してより深く処理できます。ここでは、XLSをCSVテキストファイルに変換するための別の質問への参照です... http://stackoverflow.com/questions/943153/converting-an-excel-xls-file-to-a-comma-separated-csv-file -with-gui- gui – nik

3

VBAを使用すると、ブック名のリストをブック内の新しいシートに簡単にダンプすることができます。

Sub PrintSheetNames() 
    i=1 
    For Each sht in Sheets 
     Cells(i,1).Value = sht.Name 
     i=i+1 
    Next 
End Sub 

空白のワークシートに移動し、このマクロを実行します。最初の列にすべてのワークシート名が出力されます。リストを印刷するだけです。

+0

shtでIntellisenseを有効にするにはSubの上部に「Dim sht As Worksheet」を追加します。 – bendewey

+0

それはそれをしました!本当にありがとう!非常に高く評価。 {:o} –

2

VBAを使用し、.NETを使用していないと仮定すると、これに類似したサブルーチンを書くことができます。同じオブジェクトと名前を.NETで使用できます。

Sub ShowTabNames() 
    Dim s As Worksheet 
    Dim tabs As String 

    For Each s In ActiveWorkbook.Worksheets 
     If Len(tabs) > 0 Then tabs = tabs & ", " 
     tabs = tabs & s.Name 
    Next 

    MsgBox tabs 
End Sub 
0

そして、Excelシート

ExcelConnection.GetOleDbSchemaTable(System.Data.OleDb.OleDbSchemaGuid.Tablesのリストに過ぎませんすべてのテーブルのリストを取得するためにGetOleDbSchemaTableメソッドを呼び出して、あなたのExcelブックにOleDbConnectionオブジェクトを作ることができます、新しいオブジェクト[] {null、null、null、 "TABLE"});

import xlrd, sys 
filename = (sys.argv[1:2] or ['Book1.xls'])[0] 
book = xlrd.open_workbook(filename, on_demand=True) 
for name in book.sheet_names(): 
    print name # name is in Unicode; may need encoding 

注:

0

がインストールxlrdモジュールではPythonを使ってこれを行うことができますon_demand argは、バージョン0.7.1の新機能です。すべてのワークシートを解析せずに時間とメモリを節約できます。以前のバージョンをお持ちの場合は、上記のスニペットでon_demand=Trueをアップグレードまたは削除してください。

関連する問題