h_header data type cp_retirementPlanningAnalysis data type
versionId int signifShortFall varchar
serviceId varchar(10) isProjIncAdeq boolean
creationTime date howCloseRetire varchar
brandCode varchar clientsView varchar
我上面的excel文件有一个标题,我希望它是表名,然后是下面的列名,旁边有数据类型。有没有简单的方法我可以从每列生成表,加上数据类型的属性?我需要创建大约70个表。
答案 0 :(得分:1)
您应该能够轻松地将Excel表格重新格式化为两列而不是四列,而不是直接从Excel中读取。然后,您可以将其另存为CSV文件,并以某种方式手动构建查询,类似于以下内容:
using System;
using System.IO;
namespace sample
{
class Program
{
static void Main(string[] args)
{
// Read all lines from csv file describing single table
string query = "CREATE TABLE ";
using (StreamReader sr = new StreamReader(File.OpenRead(@"C:\test\test.csv"))){
// Skip the first line
sr.ReadLine();
// Get the header from the second line
query += sr.ReadLine().Split(',')[0] + '(';
while (!sr.EndOfStream)
{
// Add parameters to query
string[] line = sr.ReadLine().Split(',');
query += line[0] + ' ' + line[1] + ',';
}
query = query.TrimEnd(',');
query += ");";
Console.WriteLine(query);
}
}
}
}
这只是一个简单方法的示例,无需创建与Excel的连接。但是,您也可以将其直接连接到Excel文件以循环显示每个工作表,或使用Linq
循环浏览此工作表等。
使用以下文字的CSV文件:
h_header,data type
cp_retirementPlanningAnalysis,data type
versionId,int
signifShortFall,varchar
serviceId,varchar(10)
isProjIncAdeq,boolean
creationTime,date
howCloseRetire,varchar
brandCode,varchar
clientsView,varchar
创建的查询是:
CREATE TABLE cp_retirementPlanningAnalysis(versionId int,signifShortFall varchar,serviceId varchar(10),isProjIncAdeq boolean,creationTime date,howCloseRetire varchar,brandCode varchar,clientsView varchar);