Files
cunkebao_v3/Cunkebao/app/excel-import-demo/page.tsx
2025-04-08 16:01:59 +08:00

105 lines
3.6 KiB
TypeScript
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

"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>
);
}