У меня есть простая таблица MSSQL с данными в ней, например:
IF OBJECT_ID('MY_BIG_TABLE') IS NOT NULL
DROP TABLE [dbo].[MY_BIG_TABLE]
CREATE TABLE [dbo].[MY_BIG_TABLE](
[ID] [int] NOT NULL,
[PERSON] [varchar](50) NOT NULL,
[STREET] [varchar](50) NOT NULL,
[PHONE] [varchar](50) NOT NULL,
[BATCH_ID] [int] NOT NULL
) ON [PRIMARY]
GO
INSERT INTO MY_BIG_TABLE (ID, PERSON, STREET, PHONE, BATCH_ID)
VALUES
(1, 'BOB', 'MAIN STREET', '555-555-5555', 100),
(2, 'SANDY', 'ELM', '666-555-5555', 100),
(3, 'FRED', 'PINE', '777-555-5555', 200),
(8, 'BOB', 'DIRT', '888-555-5555', 200),
(52, 'GEORGE', 'RIVER ROAD', '999-555-5555', 700)
Я экспортирую данные из нее в Excel
файлы, используя Python
и Pandas
, например так:
import pypyodbc
import pandas
def main():
server_name = "SERVER_NAME"
database = "TEST_DATABASE"
connection = pypyodbc.connect(
"Driver={SQL Server};"
"Server=" + server_name + ";"
"Database=" + database + ";"
"Trusted_Connection=yes;"
)
batch_id_list = [100,200,700]
for batch_id in batch_id_list:
print ("--------------------------------------------")
print ("".join(["reading batch_id:", str(batch_id)]))
file_name = "".join(["EXPORT_", str(batch_id), ".xlsx"])
the_sql = """
SELECT * FROM
MY_BIG_TABLE
WHERE BATCH_ID = ?"""
data = pandas.read_sql(the_sql, connection, params=[batch_id])
print ("".join(["writing batch_id:", str(batch_id)]))
data.to_excel("".join(["c:/temp/", file_name]))
if __name__ == "__main__":
main()
И я получаю небольшую кучу файлов Excel.Один файл на BATCH_ID
со всеми загруженными результатами. Работает отлично.Мне нужно сделать так, чтобы в одном из столбцов был раскрывающийся список Excel, например:

Я, конечно, мог бы зайти в Excel и сделать это длякаждый файл, но, как я уверен, вы можете сказать, что это просто пример данных.Я собираюсь делать тысячи файлов Excel.
Как я могу использовать то, что у меня есть в Python, сделать один из столбцов выпадающим, как на моем рисунке?Есть ли какая-то опция шаблона, которой я могу воспользоваться, я открыт для всего.У меня есть контроль над данными SQL, поэтому я могу добавлять значения, если это помогает сделать это проще.Заранее спасибо!