导入excel精华版

//须引入 NPOI, NPOI.OOXML, NPOI.Openxml4Net, NPOI.OpenxmlFormats等程序集 自己去下载吧

using System;
using System.Collections.Generic;
using System.Data;
using System.Linq;
using System.Text;
using Holworth.Utility;
using Microsoft.SqlServer.Server;

namespace ConsoleApplication25
{
public enum DataTypeDimesion
{
浮点型 = 0,
整型 = 1,
日期 = 2,
字符串 = 3
}

public class ExcelDataMap
{
public int RowIndex { get; set; }
public string ColumnName { get; set; }
public DataTypeDimesion DataType { get; set; }
}

class Program
{
public static List<ExcelDataMap> ExcelDataMaps = new List<ExcelDataMap>();

public static string ColNameMapValue(DataTable table, int rowIndex,int colIndex)
{
return table.Rows[rowIndex][colIndex].ToString();
}

static void Main(string[] args)
{
//EXCEL 列映射 start
ExcelDataMaps.Add(new ExcelDataMap() { RowIndex = 0, ColumnName = "CLIENT_NAME", DataType = DataTypeDimesion.字符串 });
ExcelDataMaps.Add(new ExcelDataMap() { RowIndex = 1, ColumnName = "COMPANY_NAME", DataType = DataTypeDimesion.字符串 });

ExcelDataMaps.Add(new ExcelDataMap() { RowIndex = 3, ColumnName = "TOTAL_ASSET", DataType = DataTypeDimesion.浮点型 });
ExcelDataMaps.Add(new ExcelDataMap() { RowIndex = 4, ColumnName = "SALE_REVENUE", DataType = DataTypeDimesion.浮点型 });

ExcelDataMaps.Add(new ExcelDataMap() { RowIndex = 6, ColumnName = "RETURN_ON_EQUITY", DataType = DataTypeDimesion.浮点型 });
ExcelDataMaps.Add(new ExcelDataMap() { RowIndex = 7, ColumnName = "SALE_PROFIT", DataType = DataTypeDimesion.浮点型 });
ExcelDataMaps.Add(new ExcelDataMap() { RowIndex = 8, ColumnName = "RETURN_TOTAL_ASSET", DataType = DataTypeDimesion.浮点型 });
ExcelDataMaps.Add(new ExcelDataMap() { RowIndex = 9, ColumnName = "INVENTORY_TURNOVER", DataType = DataTypeDimesion.浮点型 });
ExcelDataMaps.Add(new ExcelDataMap() { RowIndex = 10, ColumnName = "FIXED_ASSET_TURNOVER", DataType = DataTypeDimesion.浮点型 });
ExcelDataMaps.Add(new ExcelDataMap() { RowIndex = 11, ColumnName = "TOTAL_ASSET_TUNOVER", DataType = DataTypeDimesion.浮点型 });

ExcelDataMaps.Add(new ExcelDataMap() { RowIndex = 13, ColumnName = "ACCOUNT_RECEIVABLE_TURNOVER", DataType = DataTypeDimesion.浮点型 });
ExcelDataMaps.Add(new ExcelDataMap() { RowIndex = 14, ColumnName = "CURRENT_RATIO", DataType = DataTypeDimesion.浮点型 });
ExcelDataMaps.Add(new ExcelDataMap() { RowIndex = 15, ColumnName = "QUICK_RATIO", DataType = DataTypeDimesion.浮点型 });
ExcelDataMaps.Add(new ExcelDataMap() { RowIndex = 16, ColumnName = "ASSET_LIABILITY_RATIO", DataType = DataTypeDimesion.浮点型 });
//EXCEL 列映射 end

string fileName = @"D:\data of office.xls";
DataSet ds = new DataSet();
DataTable dt = new DataTable();
ds = ExcelHelper.ReadExcelAllSheets(fileName, 0, false);
dt = ds.Tables[0];
int colStartIndex= 5;//每列为一条记录 这里从第5列开始
//从0行开始读取Excel
int rowIndex = 0;
string columns = "";
string sql = "";
//遍历每一行 这里相当于每个字段
while (true)
{
//最后一列遇到结束的时候跳出循环不再拼接sql语句
//if (string.IsNullOrEmpty(dt.Rows[0][colStartIndex].ToString()))
try
{
if (dt.Rows[0][colStartIndex].ToString() == "xxend")
{

break;

}
}
catch (Exception)
{

return;
}
sql += "\r\n insert into ( ";
ExcelDataMaps.ForEach(e => { columns += e.ColumnName + ","; });
columns = columns.TrimEnd(‘,‘);
//sql 先拼接头部
sql += columns;
sql += ")";
sql += "\r\n";
sql += "values(";

foreach (ExcelDataMap dataMap in ExcelDataMaps)
{
string valueObject = ColNameMapValue(dt, dataMap.RowIndex, colStartIndex);

switch (dataMap.DataType)
{
case DataTypeDimesion.字符串:
sql += "‘" + valueObject + "‘"+",";
break;
case DataTypeDimesion.整型:
int i = 0;
if (string.IsNullOrEmpty(valueObject))
{
valueObject = "0";
}
int.TryParse(valueObject, out i);
sql += i + ",";
break;
case DataTypeDimesion.浮点型:
decimal f = 0;
if (string.IsNullOrEmpty(valueObject))
{
valueObject = "0";
}
Decimal.TryParse(valueObject, out f);
sql += f + ",";
break;
break;
case DataTypeDimesion.日期:
if (!string.IsNullOrEmpty(valueObject))
{
valueObject = (string.Format("to_date(‘{0}‘,‘yyyy-mm-dd hh24:mi:ss‘)", valueObject));
}
else
{
valueObject = "‘‘";

}
sql += valueObject + ",";
break;

}

}
sql = sql.TrimEnd(‘,‘);
sql += ")";
colStartIndex++;
columns = "";
}

}
}
}

时间: 2024-10-29 19:09:46

导入excel精华版的相关文章

[转]MATLAB导入Excel数据错误

今天在向Matlab 2013b中导入office2013 Excel文件时出现了如下图错误: 为此,通过在网上查找发现了解决办法,主要是因为Excel加载项中的" FoxitReader PDF Creator COM Add-in"选项引起的. 因此可以尝试以下解决办法来修改Excel文件加载项: 1.进入到"文件"->"选项": 2.点击"加载项"选项卡: (错误产生就是由于此加载项是活动的.) 3.在当前选项卡下

[zz]winform导入excel

winfrom导入excel内容,要求能够excel中多个工作簿的内容.代码如下: #region 导入excel数据 private void button2_Click(object sender, EventArgs e) { OpenFileDialog openFileDialog = new OpenFileDialog(); openFileDialog.Filter = "表格文件 (*.xls)|*.xls"; openFileDialog.RestoreDirect

导入Excel用户表,调用存储过程

花了一天半的时间学习了一下导入Excel用户表,调用存储过程,主要是学习存储过程.因为之前没有具体在项目中应用过. 这里我们采用导入Excel到临时表,然后存储过程中读取临时表判断数据类型和数据格式,然后保存到正式表. 导入Excel采用spring 的POI技术. 本文内容较多,请选择性阅读. controller里面的代码: /**  * Excel导入用户表,调用存储过程,先导入临时表,再在存储过程中判断,判断通过后导入正式表,错误的则记录错误日志表中. lijianbo  *   * @

Thinkphp 用PHPExcel 导入Excel

搞了个简单的Excel导入, 用的是PHPExcel(百科:用来操作Office Excel文档的一个PHP类库, 基于微软的OpenXML标准和PHP语言) 好, 不说了, 开始吧... 首先得有PHPExcel类库, 点这里下载 https://github.com/Zmwherein/PHPExcel.git 然后把它放在 \ThinkPHP\Library\Vendor(个人喜好, 能引入就行了) 如图: PHPExcel.php 类似一个入口文件. 可以进去看看里面写的方法是怎个跑法.

PLSQL导入Excel表中数据

PL/SQL 和SQL Sever导入excel数据的原理类似,就是找到一个导入excel数据的功能项,按照步骤走就是了.下面是一个些细节过程,希望对像我这样的菜鸟有帮助.  www.2cto.com 1.准备excel表. 右击数据表—选择edit data. 选择数据,右击,选择Copy to Excel 2.调整excel表 可以删除A列和F列,然后把你的数据粘到BCDE列,这样做的好处就是在导入excel的时候,绝对不会出现因为格式或其他文字问题导致错误. 3.准备导入 选择tool—O

SQL Server服务器上需要导入Excel数据的必要条件

SQL Server服务器上需要导入Excel数据,必须安装2007 Office system 驱动程序:数据连接组件,或者Access2010的数据库引擎可再发行程序包,这样就不必在服务器上装Excel了.

点击按钮,导入excel

需为2003版本 private void button1_Click(object sender, EventArgs e)        {            string resultFile = "";            OpenFileDialog openFileDialog1 = new OpenFileDialog();            openFileDialog1.InitialDirectory = "D:";          

通过模板将数据导入EXCEL

在EXCEL模板里设置好样式和格式 点击事件 private void btnReport_Click(object sender, EventArgs e)        {            //将数据导入Excel中并设置Excel基本样式            ExcelHandle excelHandle = new ExcelHandle();            excelHandle.GenerateStudentsReports(this.dgvStudents);   

Sublime Text 3 快捷键精华版

Sublime Text 3 快捷键精华版 Ctrl+Shift+P:打开命令面板Ctrl+P:搜索项目中的文件Ctrl+G:跳转到第几行Ctrl+W:关闭当前打开文件Ctrl+Shift+W:关闭所有打开文件Ctrl+Shift+V:粘贴并格式化Ctrl+D:选择单词,重复可增加选择下一个相同的单词Ctrl+L:选择行,重复可依次增加选择下一行Ctrl+Shift+L:选择多行Ctrl+Shift+Enter:在当前行前插入新行Ctrl+X:删除当前行Ctrl+M:跳转到对应括号Ctrl+U: