下面是使用Java實現的,將Excel數據表中的數據導入到資料庫里裡面。
public class ReadExcel {
/**
* 對外提供讀取excel 的方法
* */
public static List<List<Object>> readExcel(File file) throws IOException {
String fileName = file.getName();
String extension = fileName.lastIndexOf(".") == -1 ? "" : fileName
.substring(fileName.lastIndexOf(".") + 1);
if ("xls".equals(extension)) {
return read2003Excel(file);
} else if ("xlsx".equals(extension)) {
return read2007Excel(file);
} else {
throw new IOException("不支持的文件類型");
}
}
/**
* 讀取 office 2003 excel
*
* @throws IOException
* @throws FileNotFoundException
*/
private static List<List<Object>> read2003Excel(File file)
throws IOException {
List<List<Object>> list = new LinkedList<List<Object>>();
HSSFWorkbook hwb = new HSSFWorkbook(new FileInputStream(file));
HSSFSheet sheet = hwb.getSheetAt(0);
Object value = null;
HSSFRow row = null;
HSSFCell cell = null;
int counter = 0;
for (int i = sheet.getFirstRowNum(); counter < sheet
.getPhysicalNumberOfRows(); i++) {
row = sheet.getRow(i);
if (row == null) {
continue;
} else {
counter++;
}
List<Object> linked = new LinkedList<Object>();
for (int j = row.getFirstCellNum(); j <= row.getLastCellNum(); j++) {
cell = row.getCell(j);
if (cell == null) {
continue;
}
DecimalFormat df = new DecimalFormat("0");// 格式化 number String
// 字元
SimpleDateFormat sdf = new SimpleDateFormat(
"yyyy-MM-dd HH:mm:ss");// 格式化日期字元串
DecimalFormat nf = new DecimalFormat("0.00");// 格式化數字
switch (cell.getCellType()) {
case XSSFCell.CELL_TYPE_STRING:
// System.out.println(i + "行" + j + " 列 is String type");
value = cell.getStringCellValue();
break;
case XSSFCell.CELL_TYPE_NUMERIC:
/*System.out.println(i + "行" + j
+ " 列 is Number type ; DateFormt:"
+ cell.getCellStyle().getDataFormatString());*/
if ("@".equals(cell.getCellStyle().getDataFormatString())) {
value = df.format(cell.getNumericCellValue());
} else if ("General".equals(cell.getCellStyle()
.getDataFormatString())) {
value = nf.format(cell.getNumericCellValue());
} else {
value = sdf.format(HSSFDateUtil.getJavaDate(cell
.getNumericCellValue()));
}
break;
case XSSFCell.CELL_TYPE_BOOLEAN:
// System.out.println(i + "行" + j + " 列 is Boolean type");
value = cell.getBooleanCellValue();
break;
case XSSFCell.CELL_TYPE_BLANK:
// System.out.println(i + "行" + j + " 列 is Blank type");
value = "";
break;
default:
// System.out.println(i + "行" + j + " 列 is default type");
value = cell.toString();
}
if (value == null || "".equals(value)) {
continue;
}
linked.add(value);
}
list.add(linked);
}
return list;
}
/**
* 讀取Office 2007 excel
* */
private static List<List<Object>> read2007Excel(File file)
throws IOException {
List<List<Object>> list = new LinkedList<List<Object>>();
// 構造 XSSFWorkbook 對象,strPath 傳入文件路徑
XSSFWorkbook xwb = new XSSFWorkbook(new FileInputStream(file));
// 讀取第一章表格內容
XSSFSheet sheet = xwb.getSheetAt(0);
Object value = null;
XSSFRow row = null;
XSSFCell cell = null;
int counter = 0;
for (int i = sheet.getFirstRowNum(); counter < sheet
.getPhysicalNumberOfRows(); i++) {
row = sheet.getRow(i);
if (row == null) {
continue;
} else {
counter++;
}
List<Object> linked = new LinkedList<Object>();
for (int j = row.getFirstCellNum(); j <= row.getLastCellNum(); j++) {
cell = row.getCell(j);
if (cell == null) {
continue;
}
DecimalFormat df = new DecimalFormat("0");// 格式化 number String
// 字元
SimpleDateFormat sdf = new SimpleDateFormat(
"yyyy-MM-dd HH:mm:ss");// 格式化日期字元串
DecimalFormat nf = new DecimalFormat("0.00");// 格式化數字
switch (cell.getCellType()) {
case XSSFCell.CELL_TYPE_STRING:
System.out.println(i + "行" + j + " 列 is String type");
value = cell.getStringCellValue();
break;
case XSSFCell.CELL_TYPE_NUMERIC:
/* System.out.println(i + "行" + j
+ " 列 is Number type ; DateFormt:"
+ cell.getCellStyle().getDataFormatString());*/
if ("@".equals(cell.getCellStyle().getDataFormatString())) {
value = df.format(cell.getNumericCellValue());
} else if ("General".equals(cell.getCellStyle()
.getDataFormatString())) {
value = nf.format(cell.getNumericCellValue());
} else {
value = sdf.format(HSSFDateUtil.getJavaDate(cell
.getNumericCellValue()));
}
break;
case XSSFCell.CELL_TYPE_BOOLEAN:
// System.out.println(i + "行" + j + " 列 is Boolean type");
value = cell.getBooleanCellValue();
break;
case XSSFCell.CELL_TYPE_BLANK:
// System.out.println(i + "行" + j + " 列 is Blank type");
value = "";
break;
default:
// System.out.println(i + "行" + j + " 列 is default type");
value = cell.toString();
}
if (value == null || "".equals(value)) {
continue;
}
linked.add(value);
}
list.add(linked);
}
return list;
}
public static void main(String[] args) {
try {
readExcel(new File("D:\Java\apache-tomcat-8.0.26\webapps\poi\docs\testRead.xls"));
// readExcel(new File("D:\test.xls"));
/*
String docsPath = request.getSession(true).getServletContext()
.getRealPath("docs");
String fileName = "testRead.xls";
String filePath = docsPath;
if (EPlatform.Windows.equals(OSinfo.getOSname())) {
filePath = filePath + "\" + fileName;
} else {
filePath = filePath + "/" + fileName;
}
filePath = "E:\testRead.xls";
List<List<Object>> list = readExcel(new File(filePath));
request.setAttribute("list", list);
RequestDispatcher dispatcher = request
.getRequestDispatcher("/read.jsp");
dispatcher.forward(request, response);
*/
} catch (IOException e) {
e.printStackTrace();
}
}
}
㈡ 如何才能用EXCEL去連接SQL 資料庫讀取數據!!!!
1、首先打開SQL Server資料庫,准備一個要導入的數據表,如下圖所示,數據表中插入一些數據
㈢ 如何將excel中的數據導入到sql2000中
使用導入導出
選中要導入的表,右鍵--導入--選擇數據源為execl
97-2003
,確定execl路徑--選擇目的表--欄位對應
--導入
大致就是這樣了
試試先,不行hi我
execl設置是什麼類型導入就是什麼類型,要指定導入的表,也可以導入到新表,就是導入的時候會自動創建,設置好表名就行。不會覆蓋原有數據,只是往表裡面插入新數據。要輸入sql的用戶名、密碼。不知道就找知道的人咯,也可以試試windows認證。
㈣ excel如何導入sql資料庫表裡
利用Excel的CONCATENATE函數組裝每行記錄為一個SQL語句,之後將所有SQL語句保存為一個SQL文件,利用Oracle執行文件的方式導入數據到對應的表。
㈤ 怎樣將EXCEL數據表導入到SQL中
第一步:登錄到
sql
server
management
studio
第二步:在
「對象資源管理器
」中右鍵單擊
「管理
」,在彈出列表中單擊
「導入數據
」
第三步:在
「導入向導
」對話框中單擊
「下一步
」,進入到
「選擇數據源
」對話框,在
「數據源
」列表中選擇
「microsoft
excel
」,同時選擇相應的
excel
文檔,完成後單擊
「下一步
」(一定要勾選該對話框中的
「首行包含列名稱
」,因此它是將
excel文檔中的列標題為資料庫表中的列項標題)
第四步:指定目標資料庫服務,依次單擊
「下一步
」。。。。至到
「完成
」
第五步:重新打到
sql
server
management
studio,進入到導入的資料庫表,可以發現所導入的
excel文檔數據。
㈥ 如何在excel表格中讀取sql資料庫數據
excel程序自帶的外部數據連接功能,可以連接sql伺服器。具體步驟為:
1、選擇【數據】選項卡,在【獲取外部數據】分組,找到【自其他來源】。
2、單擊【自其他來源】按鈕,打開【選擇來源】下拉菜單。
3、選擇【來自sql
server】打開【數據連接向導】對話框。
4、填寫伺服器名稱、登錄的用戶名及密碼等信息,即可成功連接。
㈦ 怎麼把excel文件里的數據導入SQL資料庫
具體操作步驟如下:
1、首先雙擊打開sqlserver,右擊需要導入數據的資料庫,如圖所示。
㈧ 怎樣將EXCEL數據導入到sql中
1、打開企業管理器,打開要導入數據的資料庫,在表上按右鍵,所有任務-->導入數據,彈出DTS導入/導出向導,按 下一步 ,
2、選擇數據源 Microsoft Excel 97-2000,文件名 選擇要導入的xls文件,按 下一步 ,
3、選擇目的 用於SQL Server 的Microsoft OLE DB提供程序,伺服器選擇本地(如果是本地資料庫的話,如 VVV),使用SQL Server身份驗證,用戶名sa,密碼為空,資料庫選擇要導入數據的資料庫(如 client),按 下一步 ,
4、選擇 用一條查詢指定要傳輸的數據,按 下一步 ,
5、按 查詢生成器,在源表列表中,有要導入的xls文件的列,將各列加入到右邊的 選中的列 列表中,這一步一定要注意,加入列的順序一定要與資料庫中欄位定義的順序相同,否則將會出錯,按 下一步 ,
6、選擇要對數據進行排列的順序,在這一步中選擇的列就是在查詢語句中 order by 後面所跟的列,按 下一步 ,
7、如果要全部導入,則選擇 全部行,按 下一步,
8、則會看到根據前面的操作生成的查詢語句,確認無誤後,按 下一步,
9、會看到 表/工作表/Excel命名區域 列表,在 目的 列,選擇要導入數據的那個表, 按 下一步,
10、選擇 立即運行,按 下一步,
11、會看到整個操作的摘要,按 完成 即可
㈨ 如何將EXCEL數據導入到SQL SERVER資料庫中
將EXCEL數據導入到SQL SERVER資料庫最便捷的方法就是使用SqlCel。話不多說,直接上圖
SqlCel可以一鍵批量導入Excel。