编写程序,生成50个Excel 文件,每个文件中包含5列数据,其中每个单元格内的内容随机生成,并且每个Excel文件的数据行数不相同。然后创建一个SQLite数据库,其结构与Excel 文件相符合,最后把前面生成的50个Excel文件中的数据导入到这个数据库中。使用python
时间: 2024-12-23 17:17:33 浏览: 7
利用POI生成EXCEL文件的方法实例
要在Python中完成这项任务,你可以使用`pandas`, `openpyxl` 和 `sqlite3` 这些库。以下是步骤概述:
首先安装所需的库(如果尚未安装):
```bash
pip install pandas openpyxl sqlite3
```
接下来,编写一个Python脚本来完成上述任务:
```python
import os
import random
import string
import pandas as pd
import sqlite3
# 设置随机数据生成函数
def generate_random_data(num_rows):
columns = ['Column{}'.format(i) for i in range(1, 6)]
data = {col: [random.randint(1, 100) for _ in range(num_rows)] for col in columns}
return pd.DataFrame(data)
# 创建Excel文件并写入数据
def create_excel_files(num_files):
for i in range(1, num_files + 1):
file_name = f"file_{i}.xlsx"
num_rows = random.randint(10, 50) # 随机行数
df = generate_random_data(num_rows)
with pd.ExcelWriter(file_name) as writer:
df.to_excel(writer, sheet_name='Sheet1', index=False)
# 创建SQLite数据库和表结构
def create_sqlite_db():
conn = sqlite3.connect('data.db')
c = conn.cursor()
c.execute('''CREATE TABLE IF NOT EXISTS ExcelData
(ID INTEGER PRIMARY KEY AUTOINCREMENT,
Column1 INTEGER,
Column2 INTEGER,
Column3 INTEGER,
Column4 INTEGER,
Column5 INTEGER)''')
conn.commit()
conn.close()
# 导入Excel数据到SQLite
def import_excel_to_sqlite(files_dir, db_name):
conn = sqlite3.connect(db_name)
c = conn.cursor()
for filename in os.listdir(files_dir):
if filename.endswith(".xlsx"):
excel_file = pd.read_excel(os.path.join(files_dir, filename))
for _, row in excel_file.iterrows():
c.execute("INSERT INTO ExcelData VALUES (?, ?, ?, ?, ?, ?)",
tuple(row))
conn.commit()
conn.close()
# 主函数
def main():
files_dir = 'excel_files'
if not os.path.exists(files_dir):
os.makedirs(files_dir)
create_excel_files(50) # 生成50个Excel文件
create_sqlite_db() # 创建SQLite数据库
import_excel_to_sqlite(files_dir, 'data.db') # 导入Excel数据
if __name__ == "__main__":
main()
```
在这个脚本中,我们首先生成了50个Excel文件,每份文件的行数和单元格数据都是随机的。接着,我们创建了一个SQLite数据库,其结构与Excel文件中的数据一致。最后,我们将Excel文件的数据导入到了SQLite数据库中。
阅读全文