Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/database/9.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Database 仅在工作簿中打印所有电子表格名称_Database_Excel_2d_Excel 2007 - Fatal编程技术网

Database 仅在工作簿中打印所有电子表格名称

Database 仅在工作簿中打印所有电子表格名称,database,excel,2d,excel-2007,Database,Excel,2d,Excel 2007,是否可以只打印电子表格名称(选项卡底部的名称)? 我有一本手册,里面有很多唱片(超过500张,呃,这是一本音乐目录…CD,上面有什么,作曲者,指挥家,乐章,时间等等),我想打印出手册的名字,而不是全部和每一部分。 是的,我知道我很可能应该在Access中这样做,但我在64年前的一个Commidor上开始使用它,并且一直在“转换”它。最新版本是Excel2007。所以本质上它是一个使用电子表格的“2D数据库”,而不是Access中的“3D数据库”。 很多方面。您可以在安装了模块的情况下使用Perl

是否可以只打印电子表格名称(选项卡底部的名称)? 我有一本手册,里面有很多唱片(超过500张,呃,这是一本音乐目录…CD,上面有什么,作曲者,指挥家,乐章,时间等等),我想打印出手册的名字,而不是全部和每一部分。 是的,我知道我很可能应该在Access中这样做,但我在64年前的一个Commidor上开始使用它,并且一直在“转换”它。最新版本是Excel2007。所以本质上它是一个使用电子表格的“2D数据库”,而不是Access中的“3D数据库”。
很多方面。

您可以在安装了模块的情况下使用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";
}

您可以在安装了模块的情况下使用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";
}

使用VBA,您可以非常轻松地将工作表名称列表转储到工作簿中的新工作表中

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

转到任何空白工作表,然后运行此宏。它将输出第一列中的所有工作表名称。然后,您可以只打印列表。

使用VBA,您可以非常轻松地将工作表名称列表转储到工作簿中的新工作表中

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

转到任何空白工作表,然后运行此宏。它将输出第一列中的所有工作表名称。然后,您可以只打印列表。

假设您使用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

假设您使用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

您可以与Excel工作簿建立OLEDB连接,然后调用GetOleDbSchemaTable以获取所有表的列表,这些表只是Excel工作表的列表


ExcelConnection.GetOleDbSchemaTable(System.Data.OleDb.OleDbSchemaGuid.Tables,新对象[]{null,null,null,“TABLE”})

您可以与Excel工作簿建立OLEDB连接,然后调用GetOleDbSchemaTable以获取所有表的列表,这些表只是Excel工作表的列表


ExcelConnection.GetOleDbSchemaTable(System.Data.OleDb.OleDbSchemaGuid.Tables,新对象[]{null,null,null,“TABLE”})

您可以在安装了模块的情况下使用Python执行此操作:

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

注意:
on_demand
arg在0.7.1版中是新的;它不需要预先解析所有工作表,从而节省时间和内存。如果您有早期版本,请升级或删除上面代码段中的随需应变
on\u demand=True

您可以在安装模块的情况下使用Python执行此操作:

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

注意:
on_demand
arg在0.7.1版中是新的;它不需要预先解析所有工作表,从而节省时间和内存。如果您有早期版本,请升级或删除上面代码段中的
on_demand=True

以在sht上启用Intellisense。将
Dim sht As Worksheet
添加到完成此操作的子组件顶部!我非常感谢你!非常感谢。{:o)在sht上启用Intellisense。将
Dim sht作为工作表添加到Sub顶部。这样做了!非常感谢!非常感谢。{:o)ParseExcel将允许您运行单个工作表并进行更深入的处理。这里是对将XLS转换为CSV文本文件的另一个问题的参考…ParseExcel将允许您运行单个工作表并进行更深入的处理。这里是对将XLS转换为CSV文本文件的另一个问题的参考。。。