Files
cunkebao_v3/Cunkebao/app/excel-import-demo/page.tsx

105 lines
3.6 KiB
TypeScript
Raw Normal View History

2025-04-08 16:01:59 +08:00
"use client";
import React, { useState } from "react";
import { ExcelImporter } from "@/components/ExcelImporter";
import { Button } from "@/components/ui/button";
import { Card } from "@/components/ui/card";
import { Code } from "@/components/ui/code";
import { Separator } from "@/components/ui/separator";
interface ImportedData {
mobile: number;
from: string;
alias: string;
}
export default function ExcelImportDemo() {
const [importedData, setImportedData] = useState<ImportedData[]>([]);
const [showData, setShowData] = useState(false);
const handleImport = (data: ImportedData[]) => {
setImportedData(data);
setShowData(true);
console.log("导入的数据:", data);
};
return (
<div className="container mx-auto py-10 space-y-8">
<div className="flex flex-col space-y-2">
<h1 className="text-2xl font-bold">Excel导入演示</h1>
<p className="text-gray-500">
Excel文件导入功能Excel中的手机号码
</p>
</div>
<Separator />
<div className="grid gap-8 md:grid-cols-2">
<div>
<h2 className="text-xl font-semibold mb-4">Excel文件</h2>
<ExcelImporter onImport={handleImport} />
</div>
<div>
<h2 className="text-xl font-semibold mb-4"></h2>
<Card className="p-4">
{importedData.length > 0 ? (
<div className="space-y-4">
<p> {importedData.length} </p>
<div className="bg-gray-100 p-4 rounded-md overflow-auto max-h-[400px]">
<pre className="text-sm">
{JSON.stringify(importedData, null, 2)}
</pre>
</div>
<div className="flex justify-end">
<Button
variant={showData ? "default" : "outline"}
onClick={() => setShowData(!showData)}
>
{showData ? "隐藏数据" : "显示数据"}
</Button>
</div>
</div>
) : (
<div className="text-center py-8 text-gray-500">
<p></p>
<p className="text-sm mt-2">Excel文件并点击确认导入</p>
</div>
)}
</Card>
</div>
</div>
<Separator />
<div className="space-y-4">
<h2 className="text-xl font-semibold">使</h2>
<div className="grid gap-6 md:grid-cols-2">
<Card className="p-4 space-y-2">
<h3 className="font-medium"></h3>
<ul className="list-disc pl-5 space-y-1 text-sm">
<li>.xlsx和.xls格式的Excel文件</li>
<li>"手机号码""来源""微信号"</li>
<li></li>
<li>"确认导入"</li>
</ul>
</Card>
<Card className="p-4 space-y-2">
<h3 className="font-medium"></h3>
<Code className="text-xs">
{`{
mobile: "手机号码", // 必填
from: "来源", // 选填
alias: "微信号" // 选填
}`}
</Code>
<p className="text-sm text-gray-500">
</p>
</Card>
</div>
</div>
</div>
);
}