我使用OpenXML SDK在C#中生成了一个.xlsx电子表格,但无法弄清楚如何使单元格样式起作用.我一直在研究Excel生成的文件,并且无法弄清楚它是如何完成的.
现在,我正在创建一个填充,创建一个CellStyleFormat指向填充,创建一个CellFormat指向的索引CellStyleFormat,然后创建一个CellStyle指向CellFormat.
这是我用来生成文档的代码:
Console.WriteLine("Creating document");
using (var spreadsheet = SpreadsheetDocument.Create("output.xlsx", SpreadsheetDocumentType.Workbook))
{
Console.WriteLine("Creating workbook");
spreadsheet.AddWorkbookPart();
spreadsheet.WorkbookPart.Workbook = new Workbook();
Console.WriteLine("Creating worksheet");
var wsPart = spreadsheet.WorkbookPart.AddNewPart<WorksheetPart>();
wsPart.Worksheet = new Worksheet();
var stylesPart = spreadsheet.WorkbookPart.AddNewPart<WorkbookStylesPart>();
stylesPart.Stylesheet = new Stylesheet();
stylesPart.Stylesheet.Fills = new Fills();
// create a solid red fill
var solidRed = new PatternFill() { PatternType = PatternValues.Solid };
solidRed.AppendChild(new BackgroundColor { Rgb = HexBinaryValue.FromString("FF00FF00") });
stylesPart.Stylesheet.Fills.AppendChild(new Fill { PatternFill = …Run Code Online (Sandbox Code Playgroud) 我只是在阅读了SQL注入攻击后编辑了我的搜索脚本.我正在尝试使用PDO而不是常规的mysql连接从我的脚本中获取相同的功能.所以我一直在阅读有关PDO的其他帖子,但我不确定.这两个脚本会提供相同的功能吗?
使用PDO:
$pdo = new PDO('mysql:host=$host; dbname=$database;', $user, $pass);
$stmt = $pdo->prepare('SELECT * FROM auction WHERE name = :name');
$stmt->bindParam(':name', $_GET['searchdivebay']);
$stmt->execute(array(':name' => $name);
Run Code Online (Sandbox Code Playgroud)
使用常规mysql:
$dbhost = @mysql_connect($host, $user, $pass) or die('Unable to connect to server');
@mysql_select_db('divebay') or die('Unable to select database');
$search = $_GET['searchdivebay'];
$query = trim($search);
$sql = "SELECT * FROM auction WHERE name LIKE '%" . $query . "%'";
if(!isset($query)){
echo 'Your search was invalid';
exit;
} //line 18
$result = mysql_query($trim);
$numrows = mysql_num_rows($result);
mysql_close($dbhost);
Run Code Online (Sandbox Code Playgroud)
我继续使用常规示例 …
我正在寻找一种基于2D数据集生成非线性(最好是二次)曲线的方法,用于预测目的.现在我正在使用我自己的普通最小二乘(OLS)实现来产生线性趋势,但我的趋势更适合曲线模型.我正在分析的数据是系统负载随着时间的推移.
这是我用来产生线性系数的等式:

我已经看过Math.NET Numerics和其他一些库,但它们要么提供插值而不是回归(这对我来说没用),或者代码不能以某种方式工作.
任何人都知道任何可以产生这种曲线系数的免费开源库或代码示例吗?
我知道,||并&&在C#中被定义为短路运营商,这种行为是由语言规范保证,但做|=和&=短路呢?
例如:
private bool IsEven(int n)
{
return n % 2 == 0;
}
private void Main()
{
var numbers = new int[] { 2, 4, 6, 8, 9, 10, 14, 16, 17, 18, 20 };
bool allEven = true;
bool anyOdd = false;
for (int i = 0; i < numbers.Length; i++)
{
allEven &= IsEven(numbers[i]);
anyOdd |= !IsEven(numbers[i]);
}
}
Run Code Online (Sandbox Code Playgroud)
当9条目被命中时,allEven变为false,这意味着所有后续条目都是无关紧要的 - allEven对于将来对该表达式的所有调用,该值保证为false.同样如此anyOdd,当它看到9时设置为true,并且对于该表达式的所有后续调用将保持为true.
那么,做&= …
我希望能够在List中存储各种静态方法,然后查找它们并动态调用它们.
每个静态方法都有不同数量的args,类型和返回值
static int X(int,int)....
static string Y(int,int,string)
Run Code Online (Sandbox Code Playgroud)
我想要一个List,我可以将它们全部添加到:
List<dynamic> list
list.Add(X);
list.Add(Y);
Run Code Online (Sandbox Code Playgroud)
然后:
dynamic result = list[0](1,2);
dynamic result2 = list[1](5,10,"hello")
Run Code Online (Sandbox Code Playgroud)
如何在C#4中做到这一点?
我正在使用crypt()PHP中的密码哈希,并且我正在尝试在执行密码检查时找出最安全的方法来测试生成的哈希的相等性.
我可以看到三个选项:
选项1 - 双等于
function checkPassword($hash, $password)
{
return crypt($password, $hash) == $hash;
}
Run Code Online (Sandbox Code Playgroud)
选项2 - 三等于
function checkPassword($hash, $password)
{
return crypt($password, $hash) === $hash;
}
Run Code Online (Sandbox Code Playgroud)
备选案文3 - strcmp()
function checkPassword($hash, $password)
{
return strcmp(crypt($password, $hash), $hash) === 0;
}
Run Code Online (Sandbox Code Playgroud)
我的直觉告诉我,由于缺乏类型检查,选项1是一个坏主意,选项2或3可能更好.但是,如果有特定情况===或者strcmp会失败,我就无法解决.哪个是最安全的?
在IRC的谈话中,有人指出以下内容:
decimal.Parse("1.0000").ToString() // 1.0000
decimal.Parse("1.00").ToString() // 1.00
Run Code Online (Sandbox Code Playgroud)
该decimal类型如何/为什么保留这样的精度(或者更确切地说,重要数字)?我的印象是这两个值是相等的,不是很明显.
这也提出了进一步的问题:
我在一些Delphi代码中遇到了一些相当不寻常的行为.当使用in关键字检查项是否在常量数组中时,我得到以下编译错误:
E1012常量表达式违反了子范围边界
常量定义如下:
type TSomeEnum = (seFoo = 1000,
seBar = 2000,
seBoo = 3000,
seFar = 4000,
seFooBar = 5000,
seBooFar = 6000,
seLow = 1000,
seHigh = 6000,
seCount = 6);
Run Code Online (Sandbox Code Playgroud)
失败的行如下:
if someObj.someProperty in [seFoo, seFar, seFooBar] then
...
Run Code Online (Sandbox Code Playgroud)
虽然我理解在这里发布的另一个问题中显示错误背后的原因,但是在使用变量时编译时没有对整数数组进行边界检查,看起来很奇怪,我在使用常量数组时遇到了同样的问题.绝对是在界限范围内.
就目前而言,我已经用包含or子句的(更大)语句替换了该行.但是,这显然不太理想.任何人都可以解释为什么我会遇到这个问题?
第一次在这里发布海报,所以我会尝试在我需要的帮助下尽可能清楚自己.我是R的新手,这是我第一次真正的独立编程经验.
我有大约2.5年的股票刻度数据,每天都有自己的文件.文件是.txt,包含大约20-30万行,平均每个360mb.我现在一次只处理一个文件.我不需要这些文件包含的所有数据,我希望我可以使用编程来最小化我的文件.
现在我的问题是我在编写正确的代码时遇到了一些困难,因此R了解我需要它做什么.
让我先向您展示一些数据,以便了解格式.
M977
R 64266NRE1VEW107 FI0009653869 2EURXHEL 630 1
R 64516SSA0B 80SHB SE0002798108 8SEKXSTO 40 1
R 645730BBREEW750 FR0010734145 8EURXHEL 640 1
R 64655OXS1C 900SWE SE0002800136 8SEKXSTO 40 1
R 64663OXS1P 450SWE SE0002800219 8SEKXSTO 40 1
R 64801SSIEGV LU0362355355 11EURXCSE 160 1
M978
Run Code Online (Sandbox Code Playgroud)
另一段数据:
M732
D 3547742
A 3551497B 200000 67110 02800
D 3550806
D 3547743
A 3551498S 250000 69228 09900
Run Code Online (Sandbox Code Playgroud)
所以你可以看到每一行以一个字母开头.每个字母表示该线的含义.例如,R指订单簿目录消息,M表示最后一秒后的毫秒,H表示股票交易行为消息.总共使用了14种不同的字母.
我已经使用该readLines函数将数据导入R.但是,当我想处理数据时,R似乎需要很长时间才能处理.
现在我想写一些If函数,说明第一个字母是否R从偏移1到4,代码意味着市场分段标识符等,并且让R添加列到这些,所以我可以处理更多的数据结构时尚.
导入此类数据的最佳方式是什么,还可以创建某种形式的结构 - 例如,在数据行中使用唯一ID信息来分析1个库存.
我有一个这样的课:
public class Product
{
public int ProductId { get; private set; }
public int SupplierId { get; private set; }
public string Name { get; private set; }
public decimal Price { get; private set; }
public int Stock { get; private set; }
public int PendingStock { get; private set; }
}
Run Code Online (Sandbox Code Playgroud)
我可以从我的数据库中获取这些细节,如下所示:
SELECT product_id, supplier_id, name, price, total_stock, pending_stock
FROM products
WHERE product_id = ?
Run Code Online (Sandbox Code Playgroud)
我不想手动运行DataSet或DataTable设置值.
我确信有一种方法可以使用某种绑定/映射机制来填充类,但我能找到的唯一东西是绑定到winforms组件或使用XAML.
是否有某种属性可以应用于我的属性/类,以便从查询行自动填充类?