将Excel转换成sql文件,插入数据库
需求:有excel文件,含多个sheet,每个sheet的内容对应插入到一张表,sheet的名称就是对应的表名称。
每一行为列名,例如:
达成:将每个sheet输出成一个以sheet名称命名的sql文件,内容为每行内容的insert语句。
以上图为例会生成三个sql文件,分别是TF_R_TERMINAL_ARCH.sql, TF_R_STOCK_TRADE.sql 和 TF_R_STOCK_TRADE_DETAIL.sql 如下图
下面是程序ExcelToInsert.java
import java.io.File;
import java.io.FileWriter;
import java.io.IOException;
import jxl.Sheet;
import jxl.Workbook;
public class ExcelToInsert {
public static void main(String[] args) {
String table_name = ""; // 表名
String sqlCell = ""; // 表单元格
String SQL = ""; // 完整的一条SQL插入语句
final String EXL_NAME = "20100419"; // Excel文件名
final String BASE_PATH = "F:/temp/"; // 文件路径
final String IN_EXL_PATH = BASE_PATH + EXL_NAME + ".xls"; // excelPath
FileWriter fw = null;
int rows = 0;
int columns = 0;
try {
try {
Workbook rwb = Workbook.getWorkbook(new File(IN_EXL_PATH));
Sheet rs[] = rwb.getSheets();
// 遍历sheet
for (int i = 0; i < rs.length; i++) {
table_name = rwb.getSheetNames()[i]; // 表名取sheetName
fw = new FileWriter(BASE_PATH + table_name + ".sql");
String preSql = "INSERT INTO TABLE "; // insert语句的前半部份
preSql += table_name + "(";
rows = rs[i].getRows();
columns = rs[i].getColumns();
// 遍历行
for (int j = 0; j < rows; j++) {
String sufSql = " VALUES( ";
if (j == 0) {// 第一行,用于取列名,造insert语句前半部份,这部份对于同一张表是相同的
for (int g = 0; g < columns - 1; g++) {
sqlCell = rs[i].getCell(g, 0).getContents().trim();
preSql += sqlCell + ",";
}
// insert语句前半部份生成
preSql += rs[i].getCell(columns - 1, 0).getContents().trim()+ ") ";
}
// 其它行,取具体insert的内容,既insert语句的后半部份
else {
for (int g = 0; g < columns - 1; g++) {
sqlCell = rs[i].ge
相关文档:
大家都在讨论关于数据库优化方面的东东,刚好参与开发了一个数据仓库方面的项目,以下的一点东西算是数据库优化方面的学习+实战的一些心得体会了,拿出来大家共享。欢迎批评指正阿!
SQL语句:
是对数据库(数据)进行操作的惟一途径;
消耗了70%~90%的数据库资源;独立于程序设计逻辑,相对于对程序源代码的优化,对SQ ......
更新:新的东西从最新的更新将是红色的。
This list will grow as I find new tools.这份名单将成长为我找到新的工具。 So if you know of some not on this list do post them in the comments.所以,如果你知道一些不在此名单中的意见后做他们。
SQL Server Management Studio Add-in's SQL Server管理工作室外接的
......
using System;
using System.Collections.Generic;
using System.Linq;
using System.Web;
using System.Web.Configuration;
using System.Data.SqlClient;
namespace WebApplication1
{
public class Message
{
public static IL ......
SELECT DISTINCT '['+user_name(b.uid)+'].['+b.name+']' AS 对象名,b.type AS 类型
from sysdepends a,sysobjects b
WHERE b.id=a.depid
AND a.id=OBJECT_ID('过程名');
EXEC SP_DEPENDS '过程名';
......
exists (sql 返回结果集为真)
not exists (sql 不返回结果集为真)
如下:
表A
ID NAME
1 A1
2 A2
3 A3
表B
ID AID NAME
1 1 B1
2 2 B2
3 2 B3
表A和表B是1对多的关系 A.ID => B.AID
......