导入excel精华版
//须引入 NPOI, NPOI.OOXML, NPOI.Openxml4Net, NPOI.OpenxmlFormats等程序集 自己去下载吧 NPOI组件很好用不可能下不到自己去吧,通常去百度网盘搜索引擎就有很多了
1添加ImportExcelHelper,ExcelDataMap,DataTypeDimesion等帮助类代码如下:
using System;
using System.Collections.Generic;
using System.Data;
using System.Linq;
using System.Text;
using Holworth.Utility;
using NPOI.HSSF.Record;
namespace ConsoleApplication25
{
public enum DataTypeDimesion
{
浮点型 = 0,
整型 = 1,
日期 = 2,
字符串 = 3
}
public class ExcelDataMap
{
public int MapIndex { get; set; }
public string ColumnName { get; set; }
public DataTypeDimesion DataType { get; set; }
}
class ImportExcelHelper
{
private static string ColNameMapValue(DataTable table, int rowIndex, int colIndex)
{
return table.Rows[rowIndex][colIndex].ToString();
}
/// <summary>
/// 通过异或将表格的行列转置
/// </summary>
/// <param name="a"></param>
/// <param name="b"></param>
public static void Swap(ref int a, ref int b)
{
a = a ^ b;//a=10100,b=0010,两者相异或的结果是10110,并保存在a中。
b = a ^ b;//a=10110,b=0010,两者相异或的结果是10100,并保存在b中,换成二进制是20
a = a ^ b;//a=10110,b=10100,两者相异或的结果是00010,保存在a中,换成十进制是2
}
public static string NoTranspose(string fileName, List<ExcelDataMap> ExcelDataMaps, int startIndex,string importTableName)
{
DataSet ds = new DataSet();
DataTable dt = new DataTable();
ds = ExcelHelper.ReadExcelAllSheets(fileName, 0, false);
dt = ds.Tables[0];
string columns = "";
string sql = "begin\n";
while (true)
{
string tempsql = "";
//最后一列遇到结束的时候跳出循环不再拼接sql语句
int MinIndex = ExcelDataMaps.Min(e => e.MapIndex);
if (startIndex < dt.Rows.Count && string.IsNullOrEmpty(dt.Rows[startIndex][MinIndex].ToString()))
{
bool pause = true;
for (int i = MinIndex+1; i < dt.Columns.Count; i++)
{
if (!string.IsNullOrEmpty(dt.Rows[startIndex][i].ToString()))
{
pause = false;
}
}
if (pause)
{
break;
}
}
if (startIndex >= dt.Rows.Count)
{
break;
}
tempsql += string.Format("\n insert into {0}( ", importTableName);
ExcelDataMaps.ForEach(e => { columns += e.ColumnName + ","; });
//额外添加一个输入日期
//columns += "INPUT_DATE" + ",";
columns = columns.TrimEnd(',');
//sql 先拼接头部
tempsql += columns;
tempsql += ")";
tempsql += "\n";
tempsql += "values(";
foreach (ExcelDataMap dataMap in ExcelDataMaps)
{
int rowIndex = dataMap.MapIndex;
//回来
string valueObject = ColNameMapValue(dt, startIndex, rowIndex).Trim();
switch (dataMap.DataType)
{
case DataTypeDimesion.字符串:
tempsql += "'" + valueObject + "'" + ",";
break;
case DataTypeDimesion.整型:
int i = 0;
if (String.IsNullOrEmpty(valueObject))
{
valueObject = "0";
}
Int32.TryParse(valueObject, out i);
tempsql += i + ",";
break;
case DataTypeDimesion.浮点型:
decimal f = 0;
if (String.IsNullOrEmpty(valueObject))
{
valueObject = "0";
}
Decimal.TryParse(valueObject, out f);
tempsql += f + ",";
break;
case DataTypeDimesion.日期:
if (!String.IsNullOrEmpty(valueObject))
{
valueObject = (String.Format("to_date('{0}','yyyy-mm-dd hh24:mi:ss')", valueObject));
}
else
{
valueObject = "''";
}
tempsql += valueObject + ",";
break;
}
}
//tempsql += (string.Format("to_date('{0}','yyyy-mm-dd hh24:mi:ss')", DateTime.Now)) + ",";
tempsql = tempsql.TrimEnd(',');
tempsql += ");";
sql += tempsql;
startIndex++;
columns = "";
}
sql += "\n end;";
return sql;
}
public static string IsTranspose(string fileName, List<ExcelDataMap> ExcelDataMaps, int startIndex, string importTableName)
{
DataSet ds = new DataSet();
DataTable dt = new DataTable();
ds = ExcelHelper.ReadExcelAllSheets(fileName, 0, false);
dt = ds.Tables[0];
string columns = "";
string sql = "begin\n";
while (true)
{
string tempsql = "";
//最后一列遇到结束的时候跳出循环不再拼接sql语句
int MinIndex = ExcelDataMaps.Min(e => e.MapIndex);
if (startIndex < dt.Columns.Count && string.IsNullOrEmpty(dt.Rows[MinIndex][startIndex].ToString()))
{
bool pause=true;
for (int i = MinIndex+1; i < dt.Rows.Count; i++)
{
if (!string.IsNullOrEmpty(dt.Rows[i][startIndex].ToString()))
{
pause = false;
}
}
if (pause)
{
break;
}
}
if (startIndex >= dt.Columns.Count)
{
break;
}
tempsql += string.Format("\n insert into {0}( ", importTableName);
ExcelDataMaps.ForEach(e => { columns += e.ColumnName + ","; });
//额外添加一个输入日期
//columns += "INPUT_DATE" + ",";
columns = columns.TrimEnd(',');
//sql 先拼接头部
tempsql += columns;
tempsql += ")";
tempsql += "\n";
tempsql += "values(";
string tempCompanyName = String.Empty;
foreach (ExcelDataMap dataMap in ExcelDataMaps)
{
int rowIndex = dataMap.MapIndex;
string valueObject = ColNameMapValue(dt, rowIndex, startIndex).Trim();
switch (dataMap.DataType)
{
case DataTypeDimesion.字符串:
tempsql += "'" + valueObject + "'" + ",";
break;
case DataTypeDimesion.整型:
int i = 0;
if (String.IsNullOrEmpty(valueObject))
{
valueObject = "0";
}
Int32.TryParse(valueObject, out i);
tempsql += i + ",";
break;
case DataTypeDimesion.浮点型:
decimal f = 0;
if (String.IsNullOrEmpty(valueObject))
{
valueObject = "0";
}
Decimal.TryParse(valueObject, out f);
tempsql += f + ",";
break;
case DataTypeDimesion.日期:
if (!String.IsNullOrEmpty(valueObject))
{
valueObject = (String.Format("to_date('{0}','yyyy-mm-dd hh24:mi:ss')", valueObject));
}
else
{
valueObject = "''";
}
tempsql += valueObject + ",";
break;
}
}
//tempsql += (string.Format("to_date('{0}','yyyy-mm-dd hh24:mi:ss')", DateTime.Now)) + ",";
tempsql = tempsql.TrimEnd(',');
tempsql += ");";
sql += tempsql;
startIndex++;
columns = "";
}
sql += "\n end;";
return sql;
}
/// <summary>
///
/// </summary>
/// <param name="fileName"></param>
/// <param name="ExcelDataMaps"></param>
/// <param name="startIndex"> 不转置的情况代表从第几行开始读取,转置的情况代表从第几列开始读取(不转置每行代表一条记录,转置则每列代表一条记录)</param>
/// <param name="importTableName">导入的表名</param>
/// <param name="isTranspose"></param>
/// <returns></returns>
public static string ImportExcel4DataMap(string fileName, List<ExcelDataMap> ExcelDataMaps, int startIndex, string importTableName, bool isTranspose)
{
string sql = "";
if (isTranspose)
{
sql = IsTranspose(fileName, ExcelDataMaps, startIndex, importTableName);
}
else
{
sql = NoTranspose(fileName, ExcelDataMaps, startIndex, importTableName);
}
return sql;
}
}
}
2.中间帮助类 ExcelHelper.cs
using System;
using System.Collections.Generic;
using System.Data;
using System.IO;
using System.Text;
using System.Web;
using NPOI;
using NPOI.HPSF;
using NPOI.HSSF;
//using NPOI.HSSF.Record.Formula.Eval;
using NPOI.HSSF.UserModel;
using NPOI.HSSF.Util;
using NPOI.POIFS;
using NPOI.SS.UserModel;
using NPOI.Util;
using NPOI.SS;
using NPOI.DDF;
using NPOI.SS.Util;
using System.Collections;
using System.Text.RegularExpressions;
using NPOI.XSSF.UserModel;
namespace Holworth.Utility
{
public class ExcelHelper
{
#region 读取Excel第一个Sheet
public static DataTable ReadExcel(string path, int TitleRow, bool lastRowIsData)
{
string extname = System.IO.Path.GetExtension(path);
if (extname.ToLower().Equals(".xls"))
{
return ReadExcel2003(path, TitleRow, lastRowIsData, 0);
}
else
{
return ReadExcel2007(path, TitleRow, lastRowIsData, 0);
}
}
public static DataTable ReadExcel(string path, int TitleRow, bool lastRowIsData, int tableindex)
{
string extname = System.IO.Path.GetExtension(path);
if (extname.ToLower().Equals(".xls"))
{
return ReadExcel2003(path, TitleRow, lastRowIsData, tableindex);
}
else
{
return ReadExcel2007(path, TitleRow, lastRowIsData, tableindex);
}
}
private static DataTable ReadExcel2003(string path, int TitleRow, bool lastRowIsData, int tableindex)
{
FileStream file = new FileStream(path, FileMode.Open, FileAccess.Read);
HSSFWorkbook workbook2003 = new HSSFWorkbook(file);
//获取excel的第一个sheet
HSSFSheet sheet = (HSSFSheet)workbook2003.GetSheetAt(tableindex);
DataTable table = new DataTable();
//获取sheet的首行
HSSFRow headerRow = (HSSFRow)sheet.GetRow(TitleRow);
//一行最后一个方格的编号 即总的列数
int cellCount = headerRow.LastCellNum;
for (int i = headerRow.FirstCellNum; i < cellCount; i++)
{
DataColumn column = new DataColumn(headerRow.GetCell(i).StringCellValue);
table.Columns.Add(column.ToString().Trim().Replace(" ", ""));
}
//最后一列的标号 即总的行数
int rowCount = sheet.LastRowNum;
for (int i = (TitleRow + 1); i <= sheet.LastRowNum; i++)
{
HSSFRow row = (HSSFRow)sheet.GetRow(i);
DataRow dataRow = table.NewRow();
for (int j = row.FirstCellNum; j < cellCount; j++)
{
if (row.GetCell(j) != null)
dataRow[j] = row.GetCell(j).ToString();
}
table.Rows.Add(dataRow);
}
workbook2003 = null;
sheet = null;
return table;
}
private static DataTable ReadExcel2007(string path, int TitleRow, bool lastRowIsData, int tableindex)
{
FileStream file = new FileStream(path, FileMode.Open, FileAccess.Read);
XSSFWorkbook workbook2007 = new XSSFWorkbook(file);
//获取excel的第一个sheet
XSSFSheet sheet = (XSSFSheet)workbook2007.GetSheetAt(tableindex);
DataTable table = new DataTable();
//获取sheet的标题行,用于形成表头
XSSFRow headerRow = (XSSFRow)sheet.GetRow(TitleRow);
//一行最后一个方格的编号 即总的列数
int cellCount = headerRow.LastCellNum;
for (int i = headerRow.FirstCellNum; i < cellCount; i++)
{
DataColumn column = new DataColumn(headerRow.GetCell(i).StringCellValue);
table.Columns.Add(column);
}
//最后一列的标号 即总的行数
int rowCount = sheet.LastRowNum;
for (int i = (TitleRow + 1); i < sheet.LastRowNum; i++)
{
XSSFRow row = (XSSFRow)sheet.GetRow(i);
DataRow dataRow = table.NewRow();
for (int j = row.FirstCellNum; j < cellCount; j++)
{
if (row.GetCell(j) != null)
dataRow[j] = row.GetCell(j).ToString();
}
table.Rows.Add(dataRow);
}
workbook2007 = null;
sheet = null;
return table;
}
#endregion
#region 读取Excel所有Sheet
public static DataSet ReadExcelAllSheets(string path, int TitleRow, bool lastRowIsData)
{
string extname = System.IO.Path.GetExtension(path);
if (extname.ToLower().Equals(".xls"))
{
return ReadExcel2003Tables(path, TitleRow, lastRowIsData);
}
else
{
return ReadExcel2007Tables(path, TitleRow, lastRowIsData);
}
}
private static DataSet ReadExcel2003Tables(string path, int TitleRow, bool lastRowIsData)
{
FileStream file = new FileStream(path, FileMode.Open, FileAccess.Read);
HSSFWorkbook workbook2003 = new HSSFWorkbook(file);
int sheetcount = workbook2003.NumberOfSheets;
DataSet retds = new DataSet();
for (int sheetindex = 0; sheetindex < sheetcount; sheetindex++)
{
//获取excel的每一个sheet
HSSFSheet sheet = (HSSFSheet)workbook2003.GetSheetAt(sheetindex);
DataTable table = new DataTable();
//获取sheet的首行
HSSFRow headerRow = (HSSFRow)sheet.GetRow(TitleRow);
if (headerRow == null)
{
continue;
}
//一行最后一个方格的编号 即总的列数
int cellCount = headerRow.LastCellNum;
for (int i = 0; i < cellCount; i++)
{
try
{
DataColumn column = new DataColumn(headerRow.GetCell(i).StringCellValue);
table.Columns.Add(column.ToString().Trim().Replace(" ", ""));
}
catch {
table.Columns.Add();
}
}
if (table.Columns.Count == 0)
{
continue;
}
//最后一列的标号 即总的行数
int rowCount = sheet.LastRowNum;
for (int i = (TitleRow + 1); i <= sheet.LastRowNum; i++)
{
HSSFRow row = (HSSFRow)sheet.GetRow(i);
DataRow dataRow = table.NewRow();
for (int j = 0; j < cellCount; j++)
{
try
{
if (row.GetCell(j) != null)
dataRow[j] = row.GetCell(j).ToString();
}
catch
{
dataRow[j] = DBNull.Value
;
}
}
table.Rows.Add(dataRow);
}
table.TableName = sheet.SheetName;
retds.Tables.Add(table);
sheet = null;
}
workbook2003 = null;
return retds;
}
private static DataSet ReadExcel2007Tables(string path, int TitleRow, bool lastRowIsData)
{
FileStream file = new FileStream(path, FileMode.Open, FileAccess.Read);
XSSFWorkbook workbook2007 = new XSSFWorkbook(file);
int sheetcount = workbook2007.NumberOfSheets;
DataSet retds = new DataSet();
for (int sheetindex = 0; sheetindex < sheetcount; sheetindex++)
{
//获取excel的每一个sheet
XSSFSheet sheet = (XSSFSheet)workbook2007.GetSheetAt(sheetindex);
DataTable table = new DataTable();
//获取sheet的标题行,用于形成表头
XSSFRow headerRow = (XSSFRow)sheet.GetRow(TitleRow);
if (headerRow == null)
{
continue;
}
//一行最后一个方格的编号 即总的列数
int cellCount = headerRow.LastCellNum;
for (int i = 0; i < cellCount; i++)
{
try
{
DataColumn column = new DataColumn(headerRow.GetCell(i).StringCellValue);
table.Columns.Add(column);
}
catch
{
table.Columns.Add();
}
}
//最后一列的标号 即总的行数
int rowCount = sheet.LastRowNum;
for (int i = (TitleRow + 1); i < sheet.LastRowNum; i++)
{
XSSFRow row = (XSSFRow)sheet.GetRow(i);
DataRow dataRow = table.NewRow();
for (int j = 0; j < cellCount; j++)
{
try
{
if (row.GetCell(j) != null)
dataRow[j] = row.GetCell(j).ToString();
}
catch
{
dataRow[j] = DBNull.Value
;
}
}
table.Rows.Add(dataRow);
}
table.TableName = sheet.SheetName;
retds.Tables.Add(table);
sheet = null;
}
workbook2007 = null;
return retds;
}
#endregion
}
}
3.调用示例
using System;
using System.Collections.Generic;
using System.Data;
using System.Linq;
using System.Text;
using Holworth.Utility;
using Microsoft.SqlServer.Server;
namespace ConsoleApplication25
{
class Program
{
static void Main(string[] args)
{
//转置 导入
#region 转置 导入
//string sql = ImportExcelHelper.ImportExcel4DataMap(@"D:\data of office.xls", new List<ExcelDataMap>()
//{
// //EXCEL 列映射 start
// (new ExcelDataMap() { MapIndex = 0, ColumnName = "CLIENT_NAME", DataType = DataTypeDimesion.字符串 }),
// (new ExcelDataMap() { MapIndex = 1, ColumnName = "COMPANY_NAME", DataType = DataTypeDimesion.字符串 }),
// (new ExcelDataMap() { MapIndex = 3, ColumnName = "TOTAL_ASSET", DataType = DataTypeDimesion.浮点型 }),
// (new ExcelDataMap() { MapIndex = 4, ColumnName = "SALE_REVENUE", DataType = DataTypeDimesion.浮点型 }),
// (new ExcelDataMap() { MapIndex = 6, ColumnName = "RETURN_ON_EQUITY", DataType = DataTypeDimesion.浮点型 }),
// (new ExcelDataMap() { MapIndex = 7, ColumnName = "SALE_PROFIT", DataType = DataTypeDimesion.浮点型 }),
// (new ExcelDataMap() { MapIndex = 8, ColumnName = "RETURN_TOTAL_ASSET", DataType = DataTypeDimesion.浮点型 }),
// (new ExcelDataMap() { MapIndex = 9, ColumnName = "INVENTORY_TURNOVER", DataType = DataTypeDimesion.浮点型 }),
// (new ExcelDataMap() { MapIndex = 10, ColumnName = "FIXED_ASSET_TURNOVER", DataType = DataTypeDimesion.浮点型 }),
// (new ExcelDataMap() { MapIndex = 11, ColumnName = "TOTAL_ASSET_TUNOVER", DataType = DataTypeDimesion.浮点型 }),
// (new ExcelDataMap() { MapIndex = 13, ColumnName = "ACCOUNT_RECEIVABLE_TURNOVER", DataType = DataTypeDimesion.浮点型 }),
// (new ExcelDataMap() { MapIndex = 14, ColumnName = "CURRENT_RATIO", DataType = DataTypeDimesion.浮点型 }),
// (new ExcelDataMap() { MapIndex = 15, ColumnName = "QUICK_RATIO", DataType = DataTypeDimesion.浮点型 }),
// (new ExcelDataMap() { MapIndex = 16, ColumnName = "ASSET_LIABILITY_RATIO", DataType = DataTypeDimesion.浮点型 }),
// //EXCEL 列映射 end
//}, 0, "ccr_credit_raw_data", true);
#endregion
//转置导入
#region 无转置 导入
string sql2 = ImportExcelHelper.ImportExcel4DataMap(@"D:\aa.xls", new List<ExcelDataMap>()
{
//EXCEL 列映射 start
(new ExcelDataMap() { MapIndex = 0, ColumnName = "CLIENT_NAME", DataType = DataTypeDimesion.字符串 }),
(new ExcelDataMap() { MapIndex = 1, ColumnName = "COMPANY_NAME", DataType = DataTypeDimesion.字符串 }),
(new ExcelDataMap() { MapIndex = 2, ColumnName = "TOTAL_ASSET", DataType = DataTypeDimesion.浮点型 }),
(new ExcelDataMap() { MapIndex = 3, ColumnName = "SALE_REVENUE", DataType = DataTypeDimesion.浮点型 }),
(new ExcelDataMap() { MapIndex = 4, ColumnName = "RETURN_ON_EQUITY", DataType = DataTypeDimesion.浮点型 }),
(new ExcelDataMap() { MapIndex = 5, ColumnName = "SALE_PROFIT", DataType = DataTypeDimesion.浮点型 }),
(new ExcelDataMap() { MapIndex = 6, ColumnName = "RETURN_TOTAL_ASSET", DataType = DataTypeDimesion.浮点型 }),
(new ExcelDataMap() { MapIndex = 7, ColumnName = "INVENTORY_TURNOVER", DataType = DataTypeDimesion.浮点型 }),
(new ExcelDataMap() { MapIndex = 8, ColumnName = "FIXED_ASSET_TURNOVER", DataType = DataTypeDimesion.浮点型 }),
(new ExcelDataMap() { MapIndex = 9, ColumnName = "TOTAL_ASSET_TUNOVER", DataType = DataTypeDimesion.浮点型 }),
(new ExcelDataMap() { MapIndex = 10, ColumnName = "ACCOUNT_RECEIVABLE_TURNOVER", DataType = DataTypeDimesion.浮点型 }),
(new ExcelDataMap() { MapIndex = 11, ColumnName = "CURRENT_RATIO", DataType = DataTypeDimesion.浮点型 }),
(new ExcelDataMap() { MapIndex = 12, ColumnName = "QUICK_RATIO", DataType = DataTypeDimesion.浮点型 }),
(new ExcelDataMap() { MapIndex = 13, ColumnName = "ASSET_LIABILITY_RATIO", DataType = DataTypeDimesion.浮点型 }),
//EXCEL 列映射 end
}, 0, "ccr_credit_raw_data", false);
#endregion
}
}
}
导入excel精华版的更多相关文章
- 一步步实现ABAP后台导入EXCEL到数据库【3】
在一步步实现ABAP后台导入EXCEL到数据库[2]里,我们已经实现计划后台作业将数据导入数据库的功能.但是,这只是针对一个简单的自定义结构的导入程序.在实践应用中,面对不同的表.不同的导入文件,我们 ...
- 一步步实现ABAP后台导入EXCEL到数据库【1】
在SAP的应用当中,导入.导出EXCEL文件的情况是一个常见的需求,有时候用户需要将大量数据定期导入到SAP的数据库中.这种情况下,使用导入程序在前台导入可能要花费不少的时间,如果能安排导入程序为后台 ...
- [Asp.net]常见数据导入Excel,Excel数据导入数据库解决方案,总有一款适合你!
引言 项目中常用到将数据导入Excel,将Excel中的数据导入数据库的功能,曾经也查找过相关的内容,将曾经用过的方案总结一下. 方案一 NPOI NPOI 是 POI 项目的 .NET 版本.POI ...
- IE8下导入EXCEL数据传到客户端以附件下载
IE8下导入EXCEL数据传到客户端以附件下载方式出现,而不显示数据,解决方法:以text/html格式返回. HttpResponseMessage message = new HttpRespon ...
- java的poi技术读取和导入Excel
项目结构: http://www.cnblogs.com/hongten/gallery/image/111987.html 用到的Excel文件: http://www.cnblogs.com/h ...
- 报表工具如何实现多次导入Excel
很多人在开发报表的时候会遇到将多张表样相同的excel导入到模板,然后提交至数据库中.但问题是很多情况,在线导入不支持一次性选择多个excel,一次只能选择一个excel,也不能将多个excel中的数 ...
- .NET导入Excel到SQL数据库
在我们开发各类应用型系统,经常会遇到导入导出Excel,为什么会用到他呢?企业或者单位在从无信息化到信息化的一个转变过程.在没有信息化的企业或单位之前,一般都采用Excel来记录相应的数据,做统计计算 ...
- SQL Server服务器上需要导入Excel数据的必要条件
SQL Server服务器上需要导入Excel数据,必须安装2007 Office system 驱动程序:数据连接组件,或者Access2010的数据库引擎可再发行程序包,这样就不必在服务器上装Ex ...
- 导入excel数据到数据库
1.上传excel到服务器 jsp页面代码 <form action="actionname" method="post" id="form1& ...
随机推荐
- CentOS下搭建.NET Core项目运行环境
系统版本:CentOS 7.3 运行环境:.NET Core 数据库:MySQL 进程守护:Supervisor .NET Core环境 安装CentOS中.NET Core依赖库 yum insta ...
- python--logging库学习_第一波
简单使用 #!/usr/local/bin/python # -*- coding:utf-8 -*- import logging logging.debug('debug message') lo ...
- Python文件操作,with open as追加文本内容实例
最常见的读写操作 import re with open('/Users/Mr.Long/Desktop/data.txt', 'w') as f: f.write('hello world') 就这 ...
- Linux系统启动流程与系统目录
启动流程 # 1,开机BIOS自检 检查一系列的硬件,最后根据启动顺序启动,是硬盘还是光驱等 # 2,MBR引导 读硬盘0柱面0磁道1扇区的前446字节 1扇区=512字节 MBR=4446字节 四个 ...
- MHA高可用主从复制实现
一 MHA 1.1 关于MHA MHA(master HA)是一款开源的MySQL的高可用程序,它为MySQL的主从复制架构提供了automating master failover功能.MHA在监控 ...
- C++ 单链表操作总结
第一.单链表的定义和操作 #include <iostream> using namespace std; template <typename T> struct Node ...
- Python curses getch()
window.getch([y, x]) Get a character. Note that the integer returned does not have to be in ASCII ra ...
- 弗雷塞斯 从生物学到生物信息学到机器学习 转录组入门(3):了解fastq测序数据
sra文件转换为fastq格式 1 fastq-dump -h --split-3 也就是说如果SRA文件中只有一个文件,那么这个参数就会被忽略.如果原文件中有两个文件,那么它就会把成对的文件按*_1 ...
- GeoServer之sqlserver插件安装
GeoServer之sqlserver插件安装 GeoServer可以直接从sqlserver中获取数据,用来发布wms服务.但是其sqlserver连接插件并没有直接集成在Geoserver中,需要 ...
- 2.redis配置
转自:http://www.runoob.com/redis/redis-tutorial.html Redis 的配置文件位于 Redis 安装目录下,文件名为 redis.conf. 你可以通过 ...